加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP – 由于违反唯一约束,检测mysql更新/插入失败

发布时间:2020-12-13 17:28:00 所属栏目:PHP教程 来源:网络整理
导读:这是类似于这个问题: PHP MySQL INSERT fails due to unique constraint 但我有一个不同的转折.假设我有一张只有一列的表格.列的名称是“title”,它有一个独特的约束. 首先我插入一行title =“something”.下次尝试插入“某物”时,由于唯一的键约束(这是很
这是类似于这个问题:

PHP MySQL INSERT fails due to unique constraint

但我有一个不同的转折.假设我有一张只有一列的表格.列的名称是“title”,它有一个独特的约束.

首先我插入一行title =“something”.下次尝试插入“某物”时,由于唯一的键约束(这是很好的),它将失败.我想做的是允许它失败,并检查mysql提供的错误代码,以确保它由于唯一的键约束失败. (即让数据库处理唯一性,我只是处理错误代码,并告诉用户结果回来时标题已经存在).

有没有办法做到这一点?

http://dev.mysql.com/doc/refman/5.5/en/error-messages-server.html

http://php.net/manual/en/function.mysql-errno.php

过去我不得不这样做,这不是很有趣:

if( mysql_errno() == 1062) {
    // Duplicate key
} else {
    // ZOMGFAILURE
}

关于编程风格的注释(从this获取到jensgram答案)
您应始终设法避免使用magic numbers.相反,您可以将已知的错误代码(1062)分配给常量(例如MYSQL_CODE_DUPLICATE_KEY).这将使您的代码更容易维护,因为if语句中的条件在几个月内仍然可读,当时1062的含义从内存中消失了:)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读