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


update record if exists, else write new record?

我试图执行这个查询,当它找到$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());

你需要告诉它要更新什么(见手册)

:

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

(我假设密钥是serial)