首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想在插入或更新mysql之前进行检查。

问我想在插入或更新mysql之前进行检查。
EN

Stack Overflow用户
提问于 2018-05-28 14:31:56
回答 1查看 100关注 0票数 1

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

代码语言:javascript
复制
$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);

    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-28 14:34:24

这通常使用on duplicate key update来处理。

代码语言:javascript
复制
INSERT INTO downloads (name, idu)
    VALUES (?, ?)
    ON DUPLICATE KEY UPDATE idu = VALUES(idu);

要使此操作正常,需要将name声明为unique或具有unique索引:

代码语言:javascript
复制
ALTER TABLE downloads ADD CONSTRAINT unq_downloads_name UNIQUE (name);

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50568624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档