gpt4 book ai didi

php - 即使添加了主键,ON DUPLICATE KEY UPDATE 仍然会添加重复项

转载 作者:太空宇宙 更新时间:2023-11-03 12:35:58 25 4
gpt4 key购买 nike

我正在尝试编写一个函数,如果存在则更新 mysql 表,如果不存在则创建它。

我的脚本仍然创建一个新条目而不是更新。

这是我的sql结构:

CREATE TABLE IF NOT EXISTS `loan` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`bank_id` int(11) DEFAULT NULL,
`name` longtext COLLATE utf8_unicode_ci,
`rate` decimal(8,3) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `loan_0b0af02d` (`bank_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

这是我的 php 脚本:

$item_insert_sql = "INSERT INTO loan(id, bank_id, name, rate) VALUES ('" . $id . "', '" . $bank_id . "', '" . $name . "', '" . $rate . "'), primary key (id), ON DUPLICATE KEY UPDATE (name='$name', rate='$rate')";
$insert_item = mysql_query($item_insert_sql, $db);

我需要做什么来解决这个问题?

最佳答案

您的插入语句不正确。您不能在插入中定义主键,并且您的 on duplicate 语法也很糟糕:

INSERT INTO table (... fields ...) VALUES (... values ...)
ON DUPLICATE KEY SET field1=value1, field2=value2, etc...

如果您对 query() 调用进行了哪怕是最小的错误处理,您也会收到错误消息:

$insert_item = mysql_query($item_insert_sql, $db) or die(mysql_error());
^^^^^^^^^^^^^^^^^^^^^^

关于php - 即使添加了主键,ON DUPLICATE KEY UPDATE 仍然会添加重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13180360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com