0
我知道类似的问题已经被问到,我尝试了一堆(包括PHP文档),但我似乎没有得到这个工作。mysqli multi_query和insert_id让我的命令不同步;
我有以下几点:
$query = "insert into page title values ('v1');insert into page title values ('v2');insert into page title values ('v3');"
$mysqlidb->multi_query($query);
$index = 0;
$insertId = $this->db->insert_id;
for($i = $insertId; $i < $insertId + sizeof($pages); $i++) {
//store ids in some array
}
如果我执行上面的代码,不管是什么我尝试下在DB做我得到“命令不同步,你现在不能运行这个命令“错误。
我明白我必须关闭所有结果,问题是我不知道如何。
似乎有结果,因为$mysqli->more_results()
返回true,但如果我然后调用use_result()或store_result()这些返回null。我试着在这之前并调用next_result后(),它总是空:
while($mysqli->more_results()) {
//next line returns error, calling close() on null:
$mysqli->use_result()->close();
$mysqli->next_result();
}
或
while($mysqli->more_results()) {
$mysqli->next_result();
//next line returns error, calling close() on null:
$mysqli->use_result()->close();
}
请帮帮忙,如何摆脱“命令不同步,你可以”现在执行这个命令“在执行multi_query插入并调用insert_id之后。谢谢。
谢谢,但如果我用多个(单个)查询替换multi_query,它会不会影响性能? – 2012-04-25 15:25:33
不是。它不会 – 2012-04-25 16:23:55
正确的你,我试过你的解决方案,我会用这个。谢谢。 – 2012-04-26 10:51:16