0

我知道有人问过类似的问题,我已经尝试了很多(包括 php 文档),但我似乎没有让它工作。

我有以下内容:

$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
}

如果我执行上面的代码,无论我接下来尝试在数据库上做什么,我都会收到“命令不同步;您现在无法运行此命令”错误。

我知道我必须关闭所有结果,问题是我不知道如何。

似乎有结果,因为$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 之后如何摆脱“命令不同步;您现在无法运行此命令”。谢谢。

4

1 回答 1

1
$values = ('v1' => '','v2' => '','v3' => '');
foreach ($values as $key => $val) {
  $query = "insert into page title values ('$key')";
  $mysqlidb->query($query);
  $values[$key] = $mysqlidb->insert_id;
}
于 2012-04-25T14:25:43.113 回答