gpt4 book ai didi

mysql_affected_rows() 总是返回 1,即使没有行被更新

转载 作者:可可西里 更新时间:2023-11-01 07:04:55 26 4
gpt4 key购买 nike

我想做的是:(以编程方式)

更新id为某物的状态,如果没有更新的行,给出错误:我们找不到id为某物的记录,否则给出消息成功。

在这里,我使用 mysql_affected_rows() 来了解某行是否已更新,但它始终返回 1,因此即使没有更新行,用户也会收到一条成功消息。

谁能告诉我它会是什么?

代码如下:

   function update_sql($sql) {


$this->last_query = $sql;

$r = mysql_query($sql);

if (!$r) {
$this->last_error = mysql_error();
return false;
}
$rows = mysql_affected_rows();
if ($rows == 0) return true; // no rows were updated
else return $rows; }

此代码返回 1。

最佳答案

那是因为如果使用 echotrue 将打印出“1”。对于调试,请尝试使用 var_dump(),或者让您的函数返回 0(在我看来,在这种情况下,这是更好的选择)。

一个小纸条;我认为您应该尝试使您的代码更具可读性(如果您问题中的代码与文件中的代码具有相同的布局)。尝试缩进代码块,使用单独的行来关闭大括号等...

关于mysql_affected_rows() 总是返回 1,即使没有行被更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2840396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com