为了账号安全,请及时绑定邮箱和手机立即绑定

为什么更新成功,更新行数0

<?php

//连接数据库

mysql_connect('127.0.0.1', 'code1', '');

mysql_select_db('code1');

mysql_query("set names 'utf8'");

//预设数据以便进行更新操作

mysql_query("insert into user(name, age, class) values('王二', 19, '高三五班')");

$id = mysql_insert_id();

//在这里更新id为$id的行的名字为李白

$sql = "update user set name ='李白' where id = $id limit 1";

if (mysql_query($sql)){

    echo '更新成功';

}

//输出更新数据条数

echo '数据更新行数:'.mysql_affected_rows();

mysql_query("delete from user where id='$id'");

?>

为什么更新成功,更新行数0?

楼上有评论用不同方法成功的,但是不是教程里面提到的方法所以不少很明白

正在回答

5 回答

你可以试试输出$id的值,var_dump($id),如果你的$id值为0,那么mysql_query($sql)会返回true ,“更新成功”也会输出,更新行数为0,符合你说的情况。具体原因的话我不太清楚,可能是数据库的数据是从编号1开始的吧

0 回复 有任何疑惑可以回复我~

可能 是楼上 说的 你写在if外面的话 可能是作用域过了,下面返回影响行数就不行


0 回复 有任何疑惑可以回复我~

if条件语句去掉就行了。因为你把sql语句发送作为if条件语句的条件了,所以当if条件语句执行完毕后,这段就告一段落了

0 回复 有任何疑惑可以回复我~

$sql = "update user set name ='李白' where id = $id limit 1";这一句有错误,$id要加单引号才对。

你可以看下代码的最后一句,$id也是加了引号的。

0 回复 有任何疑惑可以回复我~
#1

慕沐7363818

我的没加单引号,输出也成功
2018-08-14 回复 有任何疑惑可以回复我~

更新之后要么是没更新到东西,比如name本身就等于李白,要不就是条件错了,没找到id=$id行的并且修改,要不然是不可能返回0行的

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么更新成功,更新行数0

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信