php - ON DUPLICATE KEY 创建新记录

标签 php mysql

我正在从 Amazon API 获取大量产品信息。我使用 ASIN 作为我的主键。运行 INSERT 时,我想检查它是否存在,如果存在,更新一些值并继续。我不想要重复的记录。

这是一个代码片段:

$stmt = $this->dbh->prepare("
        INSERT INTO products(ASIN, Many, Other, Values)
        VALUES(:ASIN, :Many, :Other, :Values)
        ON DUPLICATE KEY UPDATE Other= :Other
        ")

$stmt->execute(array(
                        ':ASIN'     =>  $ASIN,
                        ':Many'     =>  $many,
                        ':Other'    =>  $other,
                        ':Values'   =>  $values
               ));

这只是将重复记录添加到我的数据库中。我如何检查 ASIN,如果它是重复的,用任何新信息更新它?

最佳答案

您需要将数据库中的键设置为唯一键或主键,否则引擎将不知道它是否是重复键。

关于php - ON DUPLICATE KEY 创建新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30909354/

相关文章:

c# - 使用 MySQLi 在 PHP 中管理 MySQL 查询

php - 如何在 php 中实现享元模式?

php - 两个在一个网页中插入更新问题

javascript - 如何通过 mysql 数据选中/取消选中模式中的单选按钮?

php - 在for循环中使用MySQL从数据库中获取数据

mysql - 选择语句奇怪的行为

php - 使用 Zend Framework 和 PHP 发送电子邮件

php - sprintf 错误如 %%?%%

php - 文件导入导出模块的单元测试

php - 在不知道表 ID 的情况下从表中删除随机行