php - 防止使用 PHP 将相同的名称插入 MySQL

标签 php mysql

如果数据库中已经存在同名值,我如何防止将其插入数据库?回显该名称已存在的警告 例如数据库有 [MARY, MIKE, JOHN] 然后有人试图再次插入名字 [JOHN],我想防止这种情况发生,即使他改变了字母样式 [JoHn]

最佳答案

在列上添加一个 UNIQUE 索引,并确保该列具有不区分大小写(最好也是不区分重音)的排序规则。我认为应该这样做。

如果您首先尝试 SELECT 并查看名称是否存在,您可能会与“竞争条件”发生冲突。基本上在您运行 SELECT 和 INSERT 之间有一小段时间,在此期间其他人可以设法插入该名称。这是一个很小的机会,但它就在那里,最终它会咬你一口。您可以通过事务来抵消这种情况(注意您的事务使用的隔离级别),但是当索引如此简单和容易时,为什么还要费心呢?此外,如果您希望检查速度更快,您无论如何都需要该列的索引。

关于php - 防止使用 PHP 将相同的名称插入 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41079899/

相关文章:

php - 使用 PHP 共享托管和页面生成

php - Yii 中的动态表单

php - codeigniter - 如果查询结果返回行,如何更新数据库

java - Spring Data Repository 多线程性能

php - 如果存在 mysqli php 则编辑重复项

php - PHP:注意:未定义索引

java - 我可以在使用保存点时将自动提交设置为ON吗

php - MySQL 按季节分组

php - 如何修复 stmt->execute() 总是返回 false?

php - 使用 .htaccess 文件创建用户友好的 URL