问答详情
源自:7-8 PHP数据库操作之更新与删除数据

为什么更新成功,更新行数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?

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

提问者:JaxonL 2017-06-13 00:05

个回答

  • 慕沐7363818
    2018-08-14 18:16:32

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

  • qq_兒_0
    2018-06-25 17:34:30

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


  • qq_光亮_1
    2018-04-21 10:50:10

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

  • qq_long妹_0
    2018-03-31 14:32:08

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

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

  • 仙士可
    2017-06-14 14:26:57

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