首页 / PHP / php – MySQL插入独特的技术
php – MySQL插入独特的技术
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – MySQL插入独特的技术,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1407字,纯文字阅读大概需要3分钟。
内容图文
![php – MySQL插入独特的技术](/upload/InfoBanner/zyjiaocheng/902/4605b85334274124bf105b63f912cd75.jpg)
我有一个php应用程序,它将数据插入MySQL,其中包含一个随机生成的唯一值.该字符串将具有大约10亿种可能性,任何时候可能不超过1或2百万个条目.从本质上讲,数据库中不存在大多数组合.
我试图找到最便宜的方法来确保插入的唯一值.具体来说,我的两个选择是:
>拥有一个生成此唯一ID的函数.在每一代中,测试数据库中是否存在该值,如果是,则重新生成,如果否,则返回值.
>生成随机字符串并尝试插入.如果插入失败,则测试错误为1062(密钥Y的MySQL重复条目X),重新生成密钥并插入新值.
依赖MySQL错误重新尝试插入是不是一个坏主意?正如我所看到的,该值可能是唯一的,似乎初始(使用技术1)是不必要的.
编辑#1
我还应该提到,值必须是6个字符长度的字符串,由大写字母和/或数字组成.它们也不能增量 – 它们应该是随机的.
编辑#2
作为旁注,我正在尝试为难以猜测的礼券创建兑换代码.使用数字和字母为每个字符创建36种可能性,而不是仅为数字为10或仅为字母为26.
这是我创建的解决方案的精简版本.在表中输入的第一个值是主键,它是自动递增的.如果插入成功,affected_rows()将等于1:
$code = $build_code();
while ((INSERT INTO certificates VALUES ('', $code) ON DUPLICATE KEY UPDATE pk = pk) && affected_rows() == 0)
$code = $build_code();
解决方法:
Is it a bad idea to rely upon the MySQL error for re-trying the insert?
不.如果你愿意,可以继续使用它.事实上,许多人认为如果你检查它是否存在,那么插入是安全的.但是除非你锁定表格,否则另一个进程总是可以插入并获取id.
因此,如果它适合您的目的,请继续生成随机ID.只需确保您测试代码,以便正确处理重复.可能对记录重复只是有用,以确保您对unlikey dups的发生方式的假设是正确的.
内容总结
以上是互联网集市为您收集整理的php – MySQL插入独特的技术全部内容,希望文章能够帮你解决php – MySQL插入独特的技术所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。