<?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?
楼上有评论用不同方法成功的,但是不是教程里面提到的方法所以不少很明白
你可以试试输出$id的值,var_dump($id),如果你的$id值为0,那么mysql_query($sql)会返回true ,“更新成功”也会输出,更新行数为0,符合你说的情况。具体原因的话我不太清楚,可能是数据库的数据是从编号1开始的吧
可能 是楼上 说的 你写在if外面的话 可能是作用域过了,下面返回影响行数就不行
if条件语句去掉就行了。因为你把sql语句发送作为if条件语句的条件了,所以当if条件语句执行完毕后,这段就告一段落了
$sql = "update user set name ='李白' where id = $id limit 1";这一句有错误,$id要加单引号才对。
你可以看下代码的最后一句,$id也是加了引号的。
更新之后要么是没更新到东西,比如name本身就等于李白,要不就是条件错了,没找到id=$id行的并且修改,要不然是不可能返回0行的