Php 防止不相关的mysql数据
假设我有两个从不同页面(不同URL)运行的php脚本。看一看: 脚本1:Php 防止不相关的mysql数据,php,mysql,database,Php,Mysql,Database,假设我有两个从不同页面(不同URL)运行的php脚本。看一看: 脚本1: <?php // 15:43:00 - Connect to database. // 15:43:00 - Mysql query: "SELECT user_data FROM users WHERE user_id = 5" // 15:43:00 - sleep(5) // 15:43:05 - Mysql query: "INSERT INTO another_table (table_user_data,
<?php
// 15:43:00 - Connect to database.
// 15:43:00 - Mysql query: "SELECT user_data FROM users WHERE user_id = 5"
// 15:43:00 - sleep(5)
// 15:43:05 - Mysql query: "INSERT INTO another_table (table_user_data, table_user_id) VALUES ($user_data, 5)"
脚本2不会等待脚本1完成。这在编程中称为竞争条件
要在MySQL中处理这种竞争条件,您可以向另一个\u表添加一个
。表\u user\u id
以引用用户。user\u id
。在这种情况下,如果用户id
在任何给定时间都不存在于用户表中,则插入另一个表将失败。虽然它不会改变您的问题,但请注意:插入有两个版本:插入()值()
和插入()选择…
。在后一种情况下,可以使用where
。
<?php
// 15:43:03 - Connect to database.
// 15:43:03 - Mysql query: "DELETE FROM users WHERE user_id = 5"