更新记录,如果存在,否则写新记录?

时间:2011-04-15 18:45:25

标签: php mysql upsert

我正在尝试执行此查询,当它找到$ serial的记录时,它可以更新它。或者,如果序列不存在,它可以写一条新记录。

我得到语法错误,但对我来说似乎很好。非常确定ON DUPLICATE KEY UPDATE是要走的路,但我错过了什么......

$query = "INSERT INTO `".$sys_id."` (serial, status) VALUES ('98745', 'active') ON DUPLICATE KEY UPDATE";
$result = mysql_query($query) or die(mysql_error());

1 个答案:

答案 0 :(得分:4)

您需要告诉它要更新的内容(see manual

这样:

$query = "INSERT INTO `".$sys_id."` (serial, status) VALUES ('98745', 'active') 
           ON DUPLICATE KEY UPDATE status=VALUES(active)";

(我假设密钥是serial