gpt4 book ai didi

PHP 和 MYSQL 对于 UPDATE/INSERT IF EXISTS,此 MySQL 语法是否正确

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

我的计划是从外部更新/插入现有/新记录到数据库中,我已设置要进入数据库的信息,但无法检查它是否已经存在。

我第一次尝试做数据库的事情

    $link = resdb::connect();
$q = "IF ( EXISTS ( SELECT * FROM property AS this WHERE this.name = $propertyname ) )"
."begin"
// UPDATE PROPERTY IF IT EXISTS
."UPDATE property (name, propertylocation, propertyrating, propertytype)"
."SET ($propertyname, $locationid, $ratingid, $typeid)"
."WHERE name = $propertyname"
."end"
."ELSE"
."begin"
."INSERT INTO property (name, propertylocation, propertyrating, propertytype)"
."VALUES ($propertyname, $locationid, $ratingid, $typeid)"
."end";
$r = mysqli_query($link, $q);
if($r > 0){
return true;
}

每行完成后都会生成一个唯一的 ID。

最佳答案

首先在名称列上创建唯一索引:

ALTER TABLE property ADD UNIQUE KEY(name)

现在您可以使用 MySql INSERT ... ON DUPLICATE KEY UPDATE...

INSERT property (name, propertylocation, propertyrating, propertytype)
VALUES ($propertyname, $locationid, $ratingid, $typeid)
ON DUPLICATE KEY UPDATE
propertylocation = VALUES(propertylocation),
propertyrating = VALUES(propertyrating),
propertytype = VALUES(propertytype)

文档:http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

不要忘记清理数据库输入。

关于PHP 和 MYSQL 对于 UPDATE/INSERT IF EXISTS,此 MySQL 语法是否正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4953700/

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