php - 生成唯一的随机字符串并插入数据库

标签 php mysql

我想编写一个 php 函数,它将创建 50000 个长度为 4 的唯一随机字母数字字符串并将其插入到数据库表中。我该怎么做?

最佳答案

for($i = 0; $i < 50000; $i++)
    $pdo->exec("INSERT INTO table_x (the_string) VALUES (UUID());");

记录在案here

编辑:替代插入方式(去除破折号)

for($i = 0; $i < 50000; $i++)
    $pdo->exec("INSERT INTO table_x (the_string) VALUES (REPLACE(UUID(), '-', ''));");

编辑值得一提:

在一台服务器中,UUID 编码地理位置和精确时间,以及 sha-1 随机值。

因此冲突的可能性只存在于单独的服务器中(例如合并它们的数据集时)。

只要我们不溢出地理/时间段的容量,就可以保证不会在本地创建重复值。

作为优化问题(数据库读取速度),将 UUID 转换为 binary(16) 字段(并使表中的列匹配该数据类型)更快、更紧凑。

关于php - 生成唯一的随机字符串并插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10676493/

相关文章:

MySQL : on creating foreign key geting error no : 150

mysql - 具有主/从写/读配置的 Django get_or_create

php - 调用 "exit"后如何执行剩余的 php 代码?

c# - 如何在 MySqlCommand 中包含 "declare"语法

PHPExcel ERR_INVALID_RESPONSE 与 PHP7.0

php - 将带有 $_SESSION 值的记录写入数据库表

python - 我遇到了有关 AttributeError 的问题

MySQL:查找值不断增加的ID

php - 从magento中的自定义模块在 sales_flat_order_item 表中添加新字段

php - 在 Yii CGridView 的标题列中禁用排序