gpt4 book ai didi

php - 如何将 ON DUPLICATE KEY UPDATE 与 WHERE 结合起来

转载 作者:行者123 更新时间:2023-11-29 13:50:32 25 4
gpt4 key购买 nike

我正在尝试使用INSERT ON DUPLICATE UPDATE,但我的问题是如何在此查询中使用WHERE

function add_link($id,$title,$url,$txt,$keyword,$category,$credit,$description,$active)
{
$query = $this->dbh->prepare("INSERT INTO links ( id, userId, title, url, txt, keyWord, category, credit, description, active, status) VALUES
(:id, :userId, :title, :url, :txt, :keyWord, :category, :credit, :description, :active, :status)
ON DUPLICATE KEY UPDATE
title=:title, url=:url, txt=:txt, keyWord=:keyWord, category=:category, credit=:credit, description=:description, active=:active, status=:status");
$query->bindValue(":id",((int)$id==0)?NULL:((int)$id));
$query->bindValue(":userId",$this->user['id']);
$query->bindValue(":title",trim($title));
$query->bindValue(":url",trim($url));
$query->bindValue(":txt",trim($txt));
$query->bindValue(":keyWord",trim($keyword));
$query->bindValue(":category",(int)$category);
$query->bindValue(":credit",(int)$credit);
$query->bindValue(":description",trim($description));
$query->bindValue(":active",(int)$active);
$query->bindValue(":status",0);
try{
$query->execute();
$this->error(0);
}catch (PDOException $ex){
$this->error(104); $this->errStr = $ex->getMessage(); return false;
}
}

如果您检查我的查询,您将看到插入查询很好,并且更新也正常工作,但是当更新查询执行时,我想检查事件用户的 userId 以及它是否是记录的所有者,然后刷新字段。

我在查询字符串的末尾尝试了这个:

WHERE userId=:userId

但是没有成功。

有什么解决办法吗?

最佳答案

如果 userId 已经是唯一键,则不需要 WHERE 子句。 ON DUPLICATE KEY UPDATE 只会更新已经具有重复键的行,因此您不必自己处理这种情况。

关于php - 如何将 ON DUPLICATE KEY UPDATE 与 WHERE 结合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16741626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com