Php 为什么mysqli::multi_查询在一定数量的行之后停止?

Php 为什么mysqli::multi_查询在一定数量的行之后停止?,php,mysql,codeigniter,mysqli-multi-query,Php,Mysql,Codeigniter,Mysqli Multi Query,我正在尝试使用multi_查询在表上运行大量的更新/插入。总共有14000个查询,但该函数仅执行480个,然后停止,没有错误,PHP继续执行脚本,超出以下中断: if($this->db->conn_id->multi_query($sql)){ do{ // echo $line.' '.mysqli_sqlstate($this->db->conn_id).'<br>'; }while($this->db->

我正在尝试使用multi_查询在表上运行大量的更新/插入。总共有14000个查询,但该函数仅执行480个,然后停止,没有错误,PHP继续执行脚本,超出以下中断:

if($this->db->conn_id->multi_query($sql)){
    do{
        // echo $line.' '.mysqli_sqlstate($this->db->conn_id).'<br>';
    }while($this->db->conn_id->more_results() && $this->db->conn_id->next_result());
    $this->message->set('Import complete.','success',TRUE);
}else{
    $this->message->set('Import could not be completed. '.mysqli_error($this->db->conn_id),'error',TRUE);
}
if($this->db->conn\u id->multi\u query($sql)){
做{
//echo$line.''.mysqli_sqlstate($this->db->conn_id)。'
'; }而($this->db->conn_id->more_results()&&$this->db->conn_id->next_result()); $this->message->set('Import complete','success',TRUE); }否则{ $this->message->set('导入无法完成。'.mysqli_错误($this->db->conn_id),'error',TRUE); }
mysqli::multi_query仅在第一条语句失败时返回false。要从集合中的其他查询中获取错误,需要首先调用mysqli::next_result(),while()就是这样做的

但是,由于mysqli::next_result()在失败时返回false,因此将导致循环结束并显示“Import complete”消息。您可能需要在设置成功消息之前检查错误,并且只有当错误为空时,才返回success

如果语句后面有错误,下面至少应该向您显示错误

if($this->db->conn_id->multi_query($sql)){
    do{
        // echo $line.' '.mysqli_sqlstate($this->db->conn_id).'<br>';
    } while($this->db->conn_id->more_results() && $this->db->conn_id->next_result());

    if ($error = mysqli_error($this->db->conn_id)) {
        $this->message->set('Import could not be completed. ' . $error,'error',TRUE);
    } else $this->message->set('Import complete.','success',TRUE);
} else {
    $this->message->set('Import could not be completed. '.mysqli_error($this->db->conn_id),'error',TRUE);
}
if($this->db->conn\u id->multi\u query($sql)){
做{
//echo$line.''.mysqli_sqlstate($this->db->conn_id)。'
'; }而($this->db->conn_id->more_results()&&$this->db->conn_id->next_result()); 如果($error=mysqli\u error($this->db->conn\u id)){ $this->message->set('导入无法完成'。$error,'error',TRUE); }else$this->message->set('Import complete','success',TRUE); }否则{ $this->message->set('导入无法完成。'.mysqli_错误($this->db->conn_id),'error',TRUE); }
查询在到达大约480行之前运行多长时间(以秒为单位)?CI是否将任何错误记录到日志文件中?@Xoc查询在失败之前运行不到一秒钟。实际上,查询本身没有错误。我传入了一个sql文件的内容,它通过命令行或gui工具运行良好。