2017-08-28 129 views
1

早上好, 我想知道如果PHP编写的语句是同步或异步的,例如:PHP语句同步或异步

$req1 = "UPDATE ..."; 
$statement1 = $connection->prepare($req1); 
$statement1->execute(); 

$req2 = "SELECT ..."; 
$statement2 = $connection->prepare($req2); 
$statement2->execute(); 

所以第二个请求的结果依赖于第一,它可能导致问题或错误的结果,换句话说,第二个请求有可能在第一个请求之前执行。

我搜索了答案,但我还没有找到明确的答案。 谢谢。

+0

关系数据库具有可以从您的PHP代码中启动/提交/回滚的事务;但代码同步执行;在第一个语句执行完成之前第二个准备好并执行 –

+0

使用事务,这将为您提供数据完整性 – Gunnrryy

+0

谢谢,现在我不应该担心这个! –

回答

4

数据库查询是同步执行的。但是,不要把我的话,请检查手册:

PDO:http://php.net/manual/en/pdostatement.execute.php

由于该方法的结果是TRUE或FALSE的成功失败,你可以推断出它是同步的。

的MySQLi:http://php.net/manual/en/mysqli-stmt.execute.php

同样在这里。所以检查文档,如果execute()返回与结果相关的东西,那么你知道它必须是同步的。

+0

谢谢,现在我确定PDO默认同步运行一个准备好的语句(SQL)请求,为了使用异步操作,您应该使用MySQLi。 –

+0

是的,请参阅:http://www.php.net/manual/en/mysqli.poll.php –