gpt4 book ai didi

php - 我想在插入或更新 mysql 之前检查

转载 作者:行者123 更新时间:2023-11-29 05:54:49 25 4
gpt4 key购买 nike

插入或更新mysql前检查我的代码不起作用我不知道为什么

$sql = "SELECT * FROM downloads WHERE name = '" . $details['name']."' " ;
$result = mysql_query($sql);

if( mysql_num_rows($result) === 0) {
$sql = "INSERT INTO downloads (name, idu) VALUES ('".$details['name']."', '".$details['idu']."')";
$result = mysql_query($sql);
}
else{

$sql2 = "UPDATE downloads SET idu='".$details['idu']."' WHERE name='". $details['name'] ."'";
$result = mysql_query($sql2);

}

最佳答案

这通常使用 on duplicate key update 处理:

INSERT INTO downloads (name, idu)
VALUES (?, ?)
ON DUPLICATE KEY UPDATE idu = VALUES(idu);

为此,您需要将 name 声明为 unique 或具有 unique 索引:

ALTER TABLE downloads ADD CONSTRAINT unq_downloads_name UNIQUE (name);

?参数 的占位符。不要乱用参数值查询字符串!这样做会使查询更难优化、调试,并使其容易受到 SQL 注入(inject)攻击。无论好坏,不再支持的“mysql_”函数不支持参数,因此这是将您的代码(和您的技能!)更新为“mysqli_”的另一个原因。

关于php - 我想在插入或更新 mysql 之前检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50568624/

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