Php 事务代码的随机字符串
我想问一下,我正在开发一个使用PHP的网站,目前正在寻找更好的方法 我想为事务代码生成随机字符串 例如:客户购买产品时,必须生成事务代码并将其存储在数据库表中 使用PHP函数来生成它,然后检查数据库表中是否已经存在事务代码,或者我应该创建一个存储过程来完成这项工作吗?您认为哪一个更快?您可以在PHP中使用 像这样的东西就行了Php 事务代码的随机字符串,php,regex,database,codeigniter,stored-procedures,Php,Regex,Database,Codeigniter,Stored Procedures,我想问一下,我正在开发一个使用PHP的网站,目前正在寻找更好的方法 我想为事务代码生成随机字符串 例如:客户购买产品时,必须生成事务代码并将其存储在数据库表中 使用PHP函数来生成它,然后检查数据库表中是否已经存在事务代码,或者我应该创建一个存储过程来完成这项工作吗?您认为哪一个更快?您可以在PHP中使用 像这样的东西就行了 <?php echo "TRANSID-".strtoupper(uniqid()); //Generates a random id every time. 如果
<?php
echo "TRANSID-".strtoupper(uniqid()); //Generates a random id every time.
如果您对此感兴趣,请看一看我不认为创建随机字符串会成为速度瓶颈,php可以做到这一点。足够好了,因为它“基于当前时间(以微秒为单位)”。但是冲突仍然是可能的(例如,您有多个服务器),尽管很少发生冲突。因此,只需将其设为unqiue索引,如果插入失败,请重试。您可以使用UUID(通用唯一标识符),它可以用于任何用途,从用户身份验证字符串到支付交易id “SagePay对交易id使用类似样式的字符串” UUID是16个八位组(128位)的数字。在其规范形式中,UUID由32个十六进制数字表示,以8-4-4-4-12的形式以连字符分隔的五组显示,总共36个字符(32个字母数字字符和四个连字符) //呼叫功能
$transationID = generate_uuid();
一些示例输出如下所示:
51B4DE29-3B71-4FD2-9E6C-071703E1FF31
3777C8C6-9FF5-4C78-AAA2-08A47F555E81
54B91C72-2CF4-4501-A6E9-02A60DCBAE4C
60F75C7C-1AE3-417B-82C8-14D456542CD7
8DE0168D-01D3-4502-9E59-10D665CEBCB2
希望它对将来的人有所帮助:)我也可以用存储过程来实现这一点,对吗?你认为哪个更快?因为在生成事务代码之后,我将检查数据库表中是否已经存在此事务代码。这是一个基于PHP的函数,与后端无关。该函数根据UNIX时间戳生成唯一的字母数字字符串。因此,99.9%将是唯一的,您可以直接将此值推送到您的数据库。谢谢,您启发了我…:D
$transationID = generate_uuid();
51B4DE29-3B71-4FD2-9E6C-071703E1FF31
3777C8C6-9FF5-4C78-AAA2-08A47F555E81
54B91C72-2CF4-4501-A6E9-02A60DCBAE4C
60F75C7C-1AE3-417B-82C8-14D456542CD7
8DE0168D-01D3-4502-9E59-10D665CEBCB2