PHP MySQL UPDATE语句成功但列未更新

时间:2014-04-29 14:11:45

标签: php mysql sql mysqli phpmyadmin

非常感谢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是idpost_id

编辑:我已经将这段代码移植到一个新文件中并且它可以工作......它只是不能与原始文件中的其他代码行一起工作。我已经逐步将代码的其他部分添加回这个新文件,它仍然可以工作,但是对于我来说,一点一点地添加代码行直到原始文件被复制为止我会非常疯狂。 ..另外,我对这种奇怪行为的原因感到好奇。任何人吗?

1 个答案:

答案 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 ??';