В настоящее время я делаю следующее:
$mysqli = new mysqli($server, $username, $password, $database); $mysqli->multi_query($multiUpdates); while ($mysqli->next_result()) {;} // Flushing results of multi_queries $mysqli->query($sqlInserts);
Есть ли более быстрый способ сбрасывать результаты?
Мне они не нужны, и я просто хочу запустить следующий запрос, однако я получаю ошибку:
Команды не синхронизированы; вы не можете запустить эту команду сейчас
Проблема в том, что while ($mysqli->next_result()) {;}
занимает около 2 секунд, что является отходом за то, что я не хочу.
Какие-нибудь лучшие решения?
Нашел более быстрое решение, которое экономит около 2-3 секунд при обновлении 500 записей и вводе 500 записей.
function newSQL() { global $server, $username, $password, $database; $con = new mysqli($server, $username, $password, $database); return $con; } $mysqli = newSQL(); $mysqli->multi_query($multiUpdates); $mysqli->close(); $mysqli = newSQL(); $mysqli->query($sqlInserts); $mysqli->close();
Не уверен, насколько это практично, но хорошо работает для скорости.