PHP で $mysqli->multi_query を 2 回目に使用しようとすると、次のエラーがスローされます。
私はMySQLのマニュアルを見ました.SOで同様の質問がありましたが、いずれも$mysqli->use_result();
または$mysqli->store_result();
または$mysqli->free_result();
.
しかし、どれも問題を解決しません。私が見逃している可能性のあるものは何か。
現在の出力 - 'コマンドが同期していません。現在、このコマンドを実行することはできません」
<?php
$link = mysqli_connect('localhost', 'root', '', 'database');
$array1 = array(1 => 1000, 2 => 1564, 3 => 2646, 4 => 5462, 5 => 8974);
$array2 = array(23 => 1975, 24 => 3789, 25 => 4658, 26 => 5978, 27 => 6879);
$update1 = '';
foreach($array1 as $k => $v) {
$update1 .= "UPDATE `ps_temp` SET `price` = {$v} WHERE `id` = {$k};";
}
$res = mysqli_multi_query($link, $update1); // Table is updated
$error = mysqli_error($link);
echo 'Error 1 - '.$error.'<hr>'; // Output : Error 1 -
$update2 = '';
foreach($array2 as $k => $v) {
$update2 .= "UPDATE `ps_temp2` SET `price` = {$v} WHERE `id` = {$k};";
}
mysqli_multi_query($link, $update2); // Table is not updated.
$error = mysqli_error($link);
echo 'Error 2 - '.$error.'<hr>'; // Output: Error 2 - 'Commands out of sync; you can't run this command now'
?>