Почему возникает ошибка, когда я отправляю несколько запросов в mysqli_query?

Этот же запрос в Админере не имеет ошибок, но в php есть

У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, которое
соответствует вашей версии сервера MariaDB для правильного использования синтаксиса
около ‘SET @lastID = last_insert_id (); ВСТАВИТЬ В
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', 'Проверка');

0

Решение

Вы должны выполнять свои запросы с отдельными вызовами API.

$DB->query("INSERT INTO ...");
$DB->query("SET @lastID = LAST_INSERT_ID()");
$DB->query("INSERT INTO ...");

обратите внимание, что вам на самом деле не нужен второй запрос, поскольку LAST_INSERT_ID () может использоваться напрямую.

Кроме того, вы никогда не должны использовать функцию с именем «HTML «специальные символы» для любого взаимодействия с базой данных. Вместо этого вы должны использовать подготовленные операторы.

Обратите внимание, что предложение использовать multi_query неоправданно и вводит в заблуждение, вызывая множество проблем.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector