Почему возникает ошибка, когда я отправляю несколько запросов в mysqli_query?
Этот же запрос в Админере не имеет ошибок, но в php есть
У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса для использования рядом с 'SET @lastID = last_insert_id(); INSERT INTO p_messages(letter_id, user_id, messa'в строке 1).
PHP:
$DB->query("INSERT INTO p_letters(user_1_id, user_1_name, create_date) VALUES ('".htmlspecialchars($accountId)."', '".htmlspecialchars($username)."', now()); SET @lastID = LAST_INSERT_ID(); INSERT INTO p_messages(letter_id, user_id, message) VALUES (@lastID, '".htmlspecialchars($accountId)."', '".htmlspecialchars($text)."');");
SQL:
INSERT INTO p_letters(user_1_id, user_1_name, create_date) VALUES ('acc583bfa62de6f66.05116379', '212312313', now()); SET @lastID = LAST_INSERT_ID(); INSERT INTO p_messages(letter_id, user_id, message) VALUES (@lastID, 'acc583bfa62de6f66.05116379', 'Проверка');
1 ответ
Вы должны выполнять свои запросы с отдельными вызовами API.
$DB->query("INSERT INTO ...");
$DB->query("SET @lastID = LAST_INSERT_ID()");
$DB->query("INSERT INTO ...");
обратите внимание, что вам на самом деле не нужен второй запрос, так как LAST_INSERT_ID() может использоваться напрямую.
Кроме того, вы никогда не должны использовать функцию с именем "специальные символыHTML " для любого взаимодействия с базой данных. Вместо этого вы должны использовать подготовленные заявления.
Обратите внимание, что предложение использовать multi_query неоправданно и вводит в заблуждение, вызывая множество проблем.