问题 :
我已经编写并运行了以前一直在运行的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,它没有。用户连接的权限很好。
这个问题刚刚发生在上周,之前它运作得很好。我真的很困惑。
谢谢, 约翰。
答案 0 :(得分:0)
你说一个名为id
的列是该表的UNIQUE键。
您没有在该查询中使用id
,那么如果没有id
字段,它将如何知道执行INSERT或UPDATE(DELETE-INSERT),以便它可以使那个决定。
REPLACE与INSERT完全相同,只是如果表中的旧行与 PRIMARY KEY或UNIQUE索引的新行具有相同的值,则在新行之前删除旧行插入行。