【发布时间】:2015-01-18 01:02:39
【问题描述】:
我有以下代码:
$add_rq = $DBH->prepare('INSERT INTO `table` SET `url` = :url ON DUPLICATE KEY UPDATE `url`=`url`');
if($add_rq->execute(['url' => $url]))
echo "Added (id: ".$DBH->lastInsertId().")";
else
echo "Not added";
如果插入的url 已存在于表中,则ON DUPLICATE KEY UPDATE 语句有效,但execute() 的返回值始终为TRUE。然而lastInsertId() 在这种情况下为零。我可以将此用作插入重复的指示,或者我可以在插入之前对 DB 再执行一次查询,但这两种方法对我来说都不好。
有没有更好的办法?
【问题讨论】:
标签: php mysql pdo insert insert-update