在插入或更新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);
}发布于 2018-05-28 14:34:24
这通常使用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注入攻击打开。无论是好是坏,不再支持的"mysql_“函数不支持参数,因此这是更新代码(和技能)的另一个原因!到"mysqli_“。
https://stackoverflow.com/questions/50568624
复制相似问题