我想要做的是:(以编程方式)
更新状态,其中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; }
Run Code Online (Sandbox Code Playgroud)
此代码返回1.
这是因为true如果您使用 ,则会打印为“1” echo。为了调试,尝试使用var_dump(),或者让你的函数返回 0 (在我看来,在这种情况下,这是更好的选择)。
一张小纸条;我认为您应该尝试使您的代码更具可读性(如果您问题中的代码与文件中的代码具有相同的布局)。尝试缩进代码块,使用单独的行来关闭大括号,等等......