MYSQL插入重复键更新与pdo

时间:2015-03-19 16:54:51

标签: php mysql pdo

(我只是尝试学习重复的键语法)

我写了一个应该将值插入表中的查询,但是如果存在一个条目,他应该更新。

$reflinkUpdate = $dbh->prepare('INSERT INTO links (link_first_id, link_linked_id) VALUES (:sid, :tid) ON DUPLICATE KEY UPDATE link_first_id= :sid2, link_linked_id = :tid2');
$reflinkUpdate->bindParam(":sid", $_POST['solo'], PDO::PARAM_INT);
$reflinkUpdate->bindParam(":tid", $_POST['reflink'], PDO::PARAM_INT);
$reflinkUpdate->bindParam(":sid2", $_POST['solo'], PDO::PARAM_INT);
$reflinkUpdate->bindParam(":tid2", $_POST['sel'], PDO::PARAM_INT);

我的代码每次插入委托而不更新。我做错了什么?

1 个答案:

答案 0 :(得分:2)

试试这样:

$reflinkUpdate = $dbh->prepare('
INSERT INTO links (link_first_id, link_linked_id)
VALUES (:sid, :tid)
ON DUPLICATE KEY
UPDATE
  link_first_id = VALUES(link_first_id),
  link_linked_id = VALUES(link_linked_id)
');

VALUES(field_name)指的是尝试插入的值。