PHP下的mysql_query是一个阻塞函数吗?

sus*_*its 5 php mysql

假设我正在使用服务器执行多个查询mysql_query.每个查询的结果都会影响后续查询.mysql_query在控制进入下一个控制之前,是否会完全执行每个调用?

编辑:我忘了提,我没有使用事务存储引擎.

And*_*ndy 6

是的,MySQL服务器必须返回数据并在PHP进入下一个操作之前完成查询,无论是分配返回值还是进入下一行代码.

mysql_query( "INSERT INTO y VALUES (x,1)" );
mysql_query( "SELECT x FROM y WHERE z=1" );
mysql_query( "UPDATE y SET x=x+1 WHERE z=1" );
mysql_query( "SELECT x FROM y WHERE z=1" );
Run Code Online (Sandbox Code Playgroud)

x将是1,然后是2,到第四个语句时,2将返回到脚本.在单个PHP脚本中并行运行查询是不可能的 - 这需要并行执行或使用另一种语言(即Java)进行线程化.