Проблемы с несколькими вставками MySQL

Я создаю простой CMS, и я пытаюсь автоматически создать дополнительный в базе данных, когда пользователь регистрируется. Код работал нормально, с первой строкой вставки, но как только я добавил вторую, он перестал работать. Я получил эту структуру кода от Stackru, и я посмотрел на других сайтах, и она кажется правильной, но я не могу понять, в чем дело. Какие-либо предложения?

$registerquery = mysql_query("BEGIN
INSERT INTO users (Username, Password, EmailAddress) 
VALUES ('".$username."', '".$password."', '".$email."')
INSERT INTO pages (page_title, page_owner) 
VALUES ('My New Page', LAST_INSERT_ID())
COMMIT");

1 ответ

Решение

Вы не можете выполнить два запроса в одном вызове query() с драйвером MySQL в PHP. Это мера безопасности против определенных форм атак SQL-инъекций, к которым ваш код уязвим (если вы ранее не выполняли mysql_real_escape_string() или подобное).

Вы также пропускаете ; разделить два запроса.

Синтаксис нескольких запросов

query1; query2; query3; etc...

Вы в основном получили

query1 query2

что просто синтаксическая ошибка.

Другие вопросы по тегам