【发布时间】:2019-09-30 06:04:38
【问题描述】:
我只是尝试在我的 php 代码中使用“mysqli_multi_query”函数(查询由分号分隔)并正确插入数据。
调用“mysqli_multi_query”后我没有收到任何错误。但未达到“mysqli_multi_query”语句(简单回显测试)下方的 php 代码。
当我在循环中将“mysqli_multi_query”替换为“mysqli_query”时,整个 php 代码都可以正常工作。
这是一种已知行为,还是我需要了解有关“mysqli_multi_query”的其他信息? mysqli是异步执行多个查询吗?
很抱歉,我的代码在家用电脑上,直到下周末才能在此处发布。我通过在工作台上手动运行检查了所有查询,它们运行良好。
我仍然可以通过在 for 循环中单独运行每个查询来解决此问题,但希望通过“mysqli_multi_query”减少数据库命中次数并提高性能。
我在这里看到了一些类似的帖子,但没有一个正确解决了我的问题。任何支持将不胜感激。
代码是这样的..
<?php
$con=mysqli_connect("localhost","my_user","my_password","my_db");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql1 = "insert into test (testCol) values(1);";
$sql2 = "insert into test (testCol) values(2);";
mysqli_multi_query($con, $sql1.$sql2 ); /* data inserted properly in test table. No error. */
/* Any code below here is not reached. But when I used below commented queries instead of above (mysqli_multi_query), echo is called.
mysqli_query($con, $sql1);
mysqli_query($con, $sql2);
*/
echo "Success";
mysqli_close($con);
?>
【问题讨论】:
-
不要写句子,而是向我们展示您的代码并解释您的问题所在,我们只有在看到您的代码时才能提供帮助。
-
对不起。我创建了一些代码来演示和更新问题。
-
奇怪。但尝试一次:-
$sql1 = "insert into test (testCol) values(1);"; $sql1 .= "insert into test (testCol) values(2);"; if(mysqli_multi_query($con, $sql1 )){ echo "Success"; } mysqli_close($con); -
感谢 Anant Singh 的快速回复,我会尝试您的建议并发布结果。由于我没有检索查询执行的结果,是否有可能发生这种情况?
-
我很困惑,这就是我说奇怪的原因。因为您显示的代码在我的最后实际上运行良好。
标签: php crash mysqli-multi-query