1

它没有发现存在“bookName”等于“bookName”的行并进行更新,而是创建了一个全新的行。我的命令有什么问题?谢谢!

$query = mysql_query(
"INSERT INTO custombookinfo (userId, sendToAddress, work, caseStudies, url, entryPoint, date, bookName) 
 VALUES ('$userId', '$emailAddress', '$work', '$caseStudies', '$url', '$entryPoint', '$date', '$bookName') 
 ON DUPLICATE KEY UPDATE bookName = 'bookName'"
);
4

2 回答 2

0

查询是正确的INSERT,但我认为您未能UNIQUE在 column 上定义约束bookName。执行以下语句:

ALTER TABLE custombookinfo ADD CONSTRAINT tb_uq UNIQUE (bookName);
于 2013-03-21T01:48:38.290 回答
0

根据您希望在表中成为 UNIQUE 的内容,您应该为 user_id 或 bookName 创建一个索引(PRIMARY 或 UNIQUE)。

有关插入的更多详细信息...关于重复密钥更新 http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

于 2013-03-21T03:15:04.407 回答