我得到了这个代码:
// Some starting variables
$test = new mysqli("localhost","root","","testdatabase");
$Query = array();
$Query[] = "SELECT 'wos' FROM items WHERE itemID = 3";
$Query[] = "SELECT 'wos' FROM items WHERE itemID";
$Query[] = "SELECT 'wos' FROM items WHERE itemID = 5";
$Query = implode(";",$Query);
$Errors = array();
// Execute multi query
if ($test->multi_query($Query)) {
do {
// fetch results
$Result = $test->store_result();
print_r($Result);
if($test->errno === 0) {
echo $Result->num_rows . "<br>";
}
else {
$Errors[] = $test->error;
}
$Result->close();
if (!$test->more_results()) {
break;
}
if (!$test->next_result()) {
$Errors[] = $test->error;
break;
}
} while (true);
}
如您所见,我有许多 X 后续查询,并希望全部执行。因此,如果查询 2 失败,我想继续多查询以让以下查询运行。我怎样才能做到这一点?
另外,如果发生错误,我想将此错误保存在$Errors
. 但是,目前它并没有按预期工作,因为我只能保存错误消息而不能保存相应的查询。如果没有失败的查询,只有错误消息并没有真正的帮助。所以我想要类似的东西:"Query 3 failed ('SELECT ...'): 'ERROR MESSAGE'"
.
这怎么可能?我可以在循环中获取当前错误$test->error
,但我没有类似$test->currentsubsequentquery
. 我怎样才能做到这一点?