MYSQL 插入重复键用 pdo 更新

MYSQL insert into duplicate key Update with pdo

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

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

$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);

我的代码每次都插入条目并且不更新。我做错了什么?

这样试试:

$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) 指的是试图插入的值。