"在重复密钥更新时插入..."查询适用于phpmyadmin但不适用于PDO

时间:2017-05-21 04:49:50

标签: php mysql sql pdo

我看过类似的帖子,但没有一个答案对我有帮助......我有这张表:

CREATE TABLE IF NOT EXISTS `user_likes_name` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_user` int(11) NOT NULL,
  `id_name` int(11) NOT NULL,
  `like` enum('yes','no','ask_later') NOT NULL,
  `date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `provenance` enum('elimination','selection','suggestion') NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `avis_user` (`id_user`,`id_name`),
  KEY `id_user` (`id_user`,`id_name`)
)

我使用此查询:

INSERT INTO user_likes_name (id_user, id_name, `like`)
VALUES (?, ?, 'ask_later')
ON DUPLICATE KEY UPDATE `date` = current_timestamp

哪个在phpmyadmin上运行正常。

但是当我在我的代码中使用它(使用PDO)时,我收到此错误消息:

  

致命错误:未捕获的异常' PDOException'与消息   ' SQLSTATE [23000]:完整性约束违规:1062 Duplicata du   冠军' 99-869' pour la clef' avis_user''在第95行的C:\ fakepath.php

我的PHP代码是:

$req = $bdd->prepare("
    INSERT INTO user_likes_name (id_user, id_name, `like`)
    VALUES (?, ?, 'ask_later')
    ON DUPLICATE KEY UPDATE `date` = current_timestamp");
$req->execute(array($foo, $bar));

我觉得我要去kwayzey。我呢?

1 个答案:

答案 0 :(得分:0)

两个小时的工作之后,我意识到我实际上并没有在正确的文件上工作。我现在感觉厌倦的方式很难夸大。