Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.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/61.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 同时发出SQL语句_Php_Mysql_Sql_Concurrency_Rabbitmq - Fatal编程技术网

Php 同时发出SQL语句

Php 同时发出SQL语句,php,mysql,sql,concurrency,rabbitmq,Php,Mysql,Sql,Concurrency,Rabbitmq,我目前正在开发一个PHP web应用程序,并使用MySQL(xampp默认设置)作为我的dbms。我的问题是,不同的用户可以连接到web应用程序,并在的同时发出更新查询 举个例子 数据的前10行(info_id 1到10)包含info_update=TRUE For example **User 1 issue** UPDATE info SET reply='helloworldOne' WHERE info_id = (SELECT info_id FROM table WHERE info

我目前正在开发一个PHP web应用程序,并使用MySQL(xampp默认设置)作为我的dbms。我的问题是,不同的用户可以连接到web应用程序,并在的同时发出更新查询

举个例子

数据的前10行(info_id 1到10)包含info_update=TRUE

For example
**User 1 issue**
UPDATE info SET reply='helloworldOne' WHERE info_id = (SELECT info_id FROM table WHERE info_update = 'TRUE' ORDER BY info_id DESC); 

**User 2 issue**
UPDATE info SET reply='helloworldTwo' WHERE info_id = (SELECT info_id FROM table WHERE info_update = 'TRUE' ORDER BY info_id DESC); 

**User 3 issue**
UPDATE info SET reply='helloworldThree' WHERE info_id = (SELECT info_id FROM table WHERE info_update = 'TRUE' ORDER BY info_id DESC); 

and so on....
我想做的是,所有这些查询都可以更新到不同的行,直到info_id(10)。因此,用户11将自动发出(在我的代码中完成)INSERT查询,因为info\U update=TRUE不再存在于表中

1) 我的问题是,如果这些查询在同一时间发送到dbms,上述所有查询是否会更新到同一行(info_id)

2) 如果Q1的答案是否定的,我可以说“从表中选择信息id,其中信息更新='TRUE'ORDER BY info_id DESC”将在这种情况下为每个查询生成不同的信息id,而不是信息id(10)?


3) 我是否需要使用RabbitMQ对所有这些请求进行排队,以便逐个执行请求,执行用户1请求,然后执行用户2请求,然后执行用户3请求?无论如何,我是RabbitMQ的新手,所以我不确定RabbitMQ是否可以做到这一点。…

据我所知,MySQL在内部解决了这些问题,这意味着它将自动锁定正在更新的行,您可以在此处了解更多信息: