【发布时间】:2019-07-24 15:21:53
【问题描述】:
mysqli_multi_query 和mysqli_query 的文档没有说明调用mysqli_multi_query 是否与多次调用mysqli_query 相同。
有人知道答案吗?
【问题讨论】:
标签: php mysqli mysqli-multi-query
mysqli_multi_query 和mysqli_query 的文档没有说明调用mysqli_multi_query 是否与多次调用mysqli_query 相同。
有人知道答案吗?
【问题讨论】:
标签: php mysqli mysqli-multi-query
没有。 mysqli_multi_query 是异步的,它将所有查询发送到数据库服务器,但只立即返回第一个结果。因此,要检查所有其他查询的结果,您将需要一些额外的代码。而运行一组 mysql_query() 您不需要任何额外的代码,而只需立即使用每个查询的结果。
也就是说,这两个函数的用途都非常有限。 mysqli_multi_query 的唯一应用是运行一些预先编写的 sql 转储。 mysql_query() 的用途也非常有限,因为没有那么多不接受可变数据的查询。对于此类查询,您必须改用 mysqli_prepare()。
【讨论】:
MYSQLI_ASYNC 调用时也是异步的。 mysqli_poll+mysqli_reap_async_query 返回的第一个结果是第一个准备好的。还为每个异步运行的查询提供控制,因为 thread_id 可用于每个查询。这会让 mysql_query 比 mysqli_multi_query 更好吗?