以下是我正在尝试的内容:
if($mysqli->multi_query(file_get_contents('file_that_contains_a_bunch_of.sql'))) {
do {
$result = $mysqli->use_result();
if($mysqli->errno === 0) {
echo $mysqli->affected_rows.' row(s) affected'.PHP_EOL;
} else {
die($mysqli->error);
}
} while($mysqli->next_result());
}
但是它提前中止循环并且不会打印错误消息。我如何找出错误是什么?
答案 0 :(得分:2)
无论如何,我需要写
if($mysqli->errno) die($mysqli->error)
如果 next 查询出现错误,next_result
函数将返回false,因此它甚至不会进入循环体。
答案 1 :(得分:1)
如果你以某种方式配置mysqli_report,它可能会中止循环,查找这样的字符串
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
在这种情况下,每次你都尝试这样做
$mysqli->use_result();
如果没有结果,您将产生错误,例如,如果有"设置","插入","更新"或"删除"查询类型。
您是否找到了获取错误消息的方法?
答案 2 :(得分:-1)
使用此代码,它运作良好
async/await