Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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从不同的进程中选择相同的行_Php_Mysql - Fatal编程技术网

PHP从不同的进程中选择相同的行

PHP从不同的进程中选择相同的行,php,mysql,Php,Mysql,我创建了一个PHP脚本来从数据库中获取行并对其进行处理 while(true){ SELECT FROM table WHERE process = 0 UPDATED the selected rows status etc..... } 它将逐个选择process=0的行并继续 然后我使用多个选项卡(Process1、process2、process3等)运行该php文件 但问题是这两个进程在作为多进程运行时选择了同一行。 我需要该进程跳过另一进程已选择的

我创建了一个PHP脚本来从数据库中获取行并对其进行处理

while(true){
     SELECT FROM table WHERE process = 0

     UPDATED the selected rows status

     etc.....
}
它将逐个选择process=0的行并继续

然后我使用多个选项卡(Process1、process2、process3等)运行该php文件

但问题是这两个进程在作为多进程运行时选择了同一行。
我需要该进程跳过另一进程已选择的行。

您可以使用来选择并锁定该行,然后进行更新。

您需要使用事务或锁定。您可以在单个查询中实现这一点,但是我们需要您当前查询的详细信息。process2将跳过该锁定行还是在process1完成后再次处理该行operation@Prem,行将被锁定以进行读取和写入,因此第二个进程将等待行被释放,然后
SELECT
查询完成。因此,您可以有另一个字段,例如,
is_processing
,您可以使用
更新将其设置为
1
,然后第二个进程的逻辑可以跳过所有行,将
is_processing
设置为
1