调用 mysqli_multi_query 后我的 php 代码没有 运行 的原因可能是什么?
What may be the cause to my php code does not run after mysqli_multi_query is called?
我只是尝试在我的 php 代码中使用 "mysqli_multi_query" 函数(查询由分号分隔)并且它正确地插入了数据。
调用 "mysqli_multi_query" 后我没有收到任何错误。但是 "mysqli_multi_query" 语句下面的 php 代码(简单的回显测试)没有达到。
当我在循环中用 "mysqli_query" 替换 "mysqli_multi_query" 时,总的 php 代码可以正常工作。
这是已知行为还是我需要了解有关 "mysqli_multi_query" 的其他信息?
mysqli 是异步执行多个查询吗?
很抱歉,我的代码在家里的电脑上,下周末才能post在这里。我在 workbench 上手动 运行 检查了所有查询,它们运行良好。
我仍然可以通过 运行 在 for 循环中单独查询每个查询来解决此问题,但希望通过 "mysqli_multi_query" 减少数据库命中次数并提高性能。
我在这里看到了一些类似的 post,但其中 none 正确地解决了我的问题。非常感谢任何支持。
代码是这样的..
<?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);
?>
是的,这主要是您的猜测。
如果混合使用 mysqli_multi_query 和 mysqli_query,后者将不会被执行!
问题代码:
$mysqli->multi_query(" Many SQL queries ; "); //works
$mysqli->query(" SQL statement #1 ; ") // not works!
正确执行此操作的唯一方法是:
$mysqli->multi_query(" Many SQL queries ; "); // works
while ($mysqli->next_result()) {;} // flush multi_queries
$mysqli->query(" SQL statement #1 ; ") // works!
您只需 use/flush 个结果即可使其余 php 代码正常工作。
我只是尝试在我的 php 代码中使用 "mysqli_multi_query" 函数(查询由分号分隔)并且它正确地插入了数据。
调用 "mysqli_multi_query" 后我没有收到任何错误。但是 "mysqli_multi_query" 语句下面的 php 代码(简单的回显测试)没有达到。
当我在循环中用 "mysqli_query" 替换 "mysqli_multi_query" 时,总的 php 代码可以正常工作。
这是已知行为还是我需要了解有关 "mysqli_multi_query" 的其他信息? mysqli 是异步执行多个查询吗?
很抱歉,我的代码在家里的电脑上,下周末才能post在这里。我在 workbench 上手动 运行 检查了所有查询,它们运行良好。
我仍然可以通过 运行 在 for 循环中单独查询每个查询来解决此问题,但希望通过 "mysqli_multi_query" 减少数据库命中次数并提高性能。
我在这里看到了一些类似的 post,但其中 none 正确地解决了我的问题。非常感谢任何支持。
代码是这样的..
<?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);
?>
是的,这主要是您的猜测。 如果混合使用 mysqli_multi_query 和 mysqli_query,后者将不会被执行!
问题代码:
$mysqli->multi_query(" Many SQL queries ; "); //works
$mysqli->query(" SQL statement #1 ; ") // not works!
正确执行此操作的唯一方法是:
$mysqli->multi_query(" Many SQL queries ; "); // works
while ($mysqli->next_result()) {;} // flush multi_queries
$mysqli->query(" SQL statement #1 ; ") // works!
您只需 use/flush 个结果即可使其余 php 代码正常工作。