即使语法正确,INSERT / UPDATE也无法正常工作?

时间:2015-10-06 10:15:24

标签: php mysql mysqli

问题

我已经编写并运行了以前一直在运行的PHP脚本,今天我意识到虽然它看起来运行正常,但过去几天没有插入或更新数据(基本上任何写入查询) 。这不会触发任何错误,当完全相同的查询被复制并粘贴到mysql终端时,它会正确插入。

CODE

$sql = "REPLACE INTO `history` (`owner`, `user`, `status`, `now_date`)
VALUES ('{$owner['username']}', '{$user}', '1', NOW())";

if (!mysqli_query($db, $sql)) { die('Error: ' . mysqli_error($db)); }

echo "Affected rows: " . mysqli_affected_rows($db);

RESPONSE

Affected rows: 1

所以它似乎工作,不会触发任何错误,并且当相同的查询输入到mysql终端时,它可以工作,它只是通过PHP,它没有。用户连接的权限很好。

这个问题刚刚发生在上周,之前它运作得很好。我真的很困惑。

谢谢, 约翰。

1 个答案:

答案 0 :(得分:0)

你说一个名为id的列是该表的UNIQUE键。

您没有在该查询中使用id,那么如果没有id字段,它将如何知道执行INSERT或UPDATE(DELETE-INSERT),以便它可以使那个决定。

  

REPLACE与INSERT完全相同,只是如果表中的旧行与 PRIMARY KEY或UNIQUE索引的新行具有相同的值,则在新行之前删除旧行插入行。

See the manual