Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何防止事务中MySQL竞态条件重复条目_Php_Mysql_Pdo - Fatal编程技术网

Php 如何防止事务中MySQL竞态条件重复条目

Php 如何防止事务中MySQL竞态条件重复条目,php,mysql,pdo,Php,Mysql,Pdo,我的PHP/MySQL代码插入用户帐户如下: 启动事务 执行选择以确保用户名(唯一)不存在 使用用户名和密码插入用户帐户 其他MySQL查询 提交事务 我的理解是,当运行多个脚本以插入具有相同用户名的用户帐户时,它们可能会遇到竞争条件并尝试插入相同的用户名。如何防止这种情况发生?您可以使列“用户名”唯一。这样,其中一个提交将失败,因为它将违反该约束

我的PHP/MySQL代码插入用户帐户如下:

  • 启动事务
  • 执行选择以确保用户名(唯一)不存在
  • 使用用户名和密码插入用户帐户
  • 其他MySQL查询
  • 提交事务

  • 我的理解是,当运行多个脚本以插入具有相同用户名的用户帐户时,它们可能会遇到竞争条件并尝试插入相同的用户名。如何防止这种情况发生?

    您可以使列“用户名”唯一。这样,其中一个提交将失败,因为它将违反该约束