Я получаю сообщение об ошибке «Команды не синхронизированы», которое обычно устраняется путем освобождения результата предыдущего запроса, но я не уверен, как применить это к моему сценарию.
Я пытался освободить результаты других запросов в различных местах php-скрипта, но ошибка не устраняется. Примеры, которые я нашел, имеют запрос, отформатированный как $ result = $ mysqli-> query (), а затем освобождают $ result. Я не использую этот стиль результата, но если я должен, я открыт для изменения моего подхода.
//Check if active checklist table exists and if not create it
$activeExist = $mysqli->query("CALL TEST('active')");
while ($row = $activeExist->fetch_row()) {
echo $row[0];
error_log($row[0]."\n\n", 3, "/var/tmp/my-errors.log");
if ($row[0] == "2") {
//$activeExist->free();
$sql = "CREATE TABLE IF NOT EXISTS active (
id varchar(10) NOT NULL PRIMARY KEY,
title varchar(100)) SELECT '$activeID' AS 'id', '$realname' AS 'title';";
$mysqli->query($sql);
error_log("Active then statement from dbTableGen ".$sql."\n\n", 3, "/var/tmp/my-errors.log");
error_log("Active (" . $mysqli->errno . ") " . $mysqli->error ."\n\n", 3, "/var/tmp/my-errors.log");
//$mysqli->query("INSERT INTO active VALUES ('$activeID', '$realname')");
}
else {
error_log("Active else statement from dbTableGen"."\n\n", 3, "/var/tmp/my-errors.log");
$mysqli->query("INSERT INTO active VALUES ('$activeID', '$realname')");
}
}
}
//mysqli_free_result();
mysqli_close($mysqli);
Ожидаемый результат: создание таблицы с именем «active» и вставка значений, если таблица еще не существует, ИЛИ просто вставка значений, если таблица уже существует.
Фактический результат: команды не синхронизированы; Вы не можете запустить эту команду сейчас