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)
指的是试图插入的值。
(我只是想学习重复的键语法)
我编写了一个查询,应该将值插入到 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)
指的是试图插入的值。