Ошибка синхронизации команд PHP
При запуске нескольких подготовленных операторов в PHP/MySQLi можно столкнуться с ошибкой «Команды не синхронизированы». sync, вы не можете запустить команду сейчас». Это происходит, когда последующие операторы пытаются выполниться, в то время как предыдущие данные результата остаются необработанными в буфере.
Чтобы исправить эту проблему, необходимо использовать функцию mysqli_free_result() для явного освобождения сохраненных данных результата перед выполнением следующего оператора. заявление. Кроме того, крайне важно вызывать функцию next_result() для объекта mysqli после выполнения каждого оператора, чтобы переместить внутренний указатель на следующий набор результатов.
В вашем конкретном примере кода ошибка возникает во время выполнения $stmt1, поскольку результат $stmt не очищается. Явно вызвав mysqli_free_result($stmt) и последующий вызов $mysqli->next_result(), вы можете гарантировать, что буфер будет очищен, а указатель сброшен для следующего оператора.
Пример модифицированного кода:
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($user_id, $username, $db_password, $firstname, $lastname, $salt);
$stmt->fetch();
$stmt->free_result();
$stmt->close();
while ($mysqli->more_results()) {
$mysqli->next_result();
}
$stmt1 = $mysqli->prepare("SELECT privileges FROM delegations WHERE id = ? LIMIT 1");
$stmt1->bind_param('s', $user_id);
$stmt1->execute();
$stmt1->store_result();
$stmt1->bind_result($privileges);
$stmt1->fetch();
$stmt1->free_result();
$stmt1->close();
Внедрив эти исправления, вы устраните ошибку «Команды не синхронизированы» и обеспечите беспрепятственное выполнение последующих подготовленных операторов.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3