微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP-mysqli_multi_query不会在while循环内多次执行

在我的PHP代码中,我使用while循环,如下所示.

<?PHP
$connection=MysqLi_connect("localhost","root","","entries");
$query1="select * from jobs";
$query1exe=MysqLi_query($connection,$query1);
$loopcount=0;
while($query1collector=MysqLi_fetch_array($query1exe,MysqLI_ASSOC)) {
    $query2="insert into learning set name='new_1';
    insert into learning set name='new_2';";
    MysqLi_multi_query($connection,$query2);
    $loopcount++;
}
echo($loopcount);
?>

在这代码中,我得到的输出为104($loopcount),这意味着循环执行了104次.但是在名为“学习”的表中,只有两个新条目new_1和new_2.我预计会有208个新条目(new_1 104次和new_2 104次).为什么我没有得到预期的结果.

我正在使用PHP 5.5.11版本

P.S我想使用MysqLi_multi_query本身,因为我需要同时执行一些查询.

这是我三遍执行代码时学习表的样子

--------------------------------------------------------
slno     | name       | city       | Phone
--------------------------------------------------------
1        | sandeep    | NULL       | NULL
-------------------------------------------------------
2        | new_1      | NULL       | NULL
-------------------------------------------------------
3        | new_2      | NULL       | NULL
-------------------------------------------------------
4        | new_1      | NULL       | NULL
-------------------------------------------------------
5        | new_2      | NULL       | NULL
------------------------------------------------------
6        | new_1      | NULL       | NULL
------------------------------------------------------
7        | new_2      | NULL       | NULL
-------------------------------------------------------

解决方法:

我看了看官方文档here,发现了用户评论

if you mix $MysqLi->multi_query and $MysqLi->query, the latter(s) won’t be executed!

仅使用MysqLi_query,将您的多查询拆分为:

MysqLi_query($connection,"insert into learning set name='new_1'");
MysqLi_query($connection,"insert into learning set name='new_2'");

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐