我有以下代码:
$put_tag_rq = $DBH->prepare( "
INSERT INTO `tags`
SET
`name` = :name
ON DUPLICATE KEY UPDATE
`id` = `id`
" );
$put_tag_rq->execute( array(
'name' => $tag,
) );
$tag_id = $DBH->lastInsertId();
echo "***********Last insert ID = $tag_id<br>";
请注意,name
也是标签键。
如果表中尚未显示插入name
标记,则此代码可以正常工作。但是如果name
已经存在,则lastInsertId()返回0。
当然,我可以做两个请求:首先检查标签中是否已显示name
标签(并获取其ID),然后在标签中显示第二个插入name
的标签
但我认为它应该更简单。不是吗?
答案 0 :(得分:1)
这是您正在寻找的MySQL: http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
有关如何在php中执行此操作的更多信息: PHP MYSQL UPDATE if Exist or INSERT if not?