非常感谢SO的php / MySQL专家的建议!我对以下看似简单的PHP代码感到难过。
$queryDel = 'UPDATE `cocoon_result` SET `image` = NULL WHERE `id` = "B" AND `post_id` = 183';
$resultDel = mysqli_query($mysqli, $queryDel);
if (!$resultDel)
$msg .= 'Errormessage: ' . mysqli_error($mysqli) . '<br />';
else if (mysqli_affected_rows($mysqli) == 0)
$msg .= 'Errormessage: ' . mysqli_error($mysqli) . '<br />';
else
$msg .= mysqli_affected_rows($mysqli) 'row(s) affected. What the ??';
该声明成功并说1行受到影响。但是image
仍旧是旧值。当我通过phpMyAdmin输入相同的sql语句时,更新工作。我尝试将image
更新为&#39;&#39;和&#39; 123&#39;并且错误仍然存在,因此它不仅仅在image
= NULL时。
表cocoon_result
的PRIMARY KEY是id
和post_id
。
编辑:我已经将这段代码移植到一个新文件中并且它可以工作......它只是不能与原始文件中的其他代码行一起工作。我已经逐步将代码的其他部分添加回这个新文件,它仍然可以工作,但是对于我来说,一点一点地添加代码行直到原始文件被复制为止我会非常疯狂。 ..另外,我对这种奇怪行为的原因感到好奇。任何人吗?
答案 0 :(得分:3)
我认为你的代码结构是错误的。你的代码应该是这样的:
$queryDel = 'UPDATE `cocoon_result` SET `image` = NULL WHERE `id` = "B" AND `post_id` = 183';
$resultDel = mysqli_query($mysqli, $queryDel);
$affected_rows = mysqli_affected_rows($mysqli);
if ($affected_rows === -1) //if the query has failed, displaying the error
$msg .= 'Error deleting result list image: ', mysqli_error($mysqli);
else if (mysqli_affected_rows($mysqli) == 0) //if the query hasn't returned any rows
$msg .= 'No rows affected<br />';
else
$msg .= mysqli_affected_rows($mysqli) 'row(s) affected. What the ??';