2013-10-12 3 views
2

Я использую readymade скрипт для резервного копирования моей базы данных MySQL с помощью PHP. Я сохраняю результирующий запрос в переменной.Ошибка синтаксиса SQL при выполнении нескольких запросов?

Если я повторяю переменную и скопирую ее в консоль MySQL, она работает отлично.

Но когда я запускаю то же самое с помощью mysql_query (я знаю, что он обесценился, любезно проигнорируйте это), я получаю ужасную ошибку синтаксиса.

Вот эхо выходной сигнал (первые 2 строки):

вставить в assign значения ('75085', 'rsam', 'CE0001/CZ0001/CPE183/CSC183', '1', '1 «0», «0», «0»), INSERT INTO assign ЦЕННОСТИ ('75086', 'rsam', 'CE0001/CZ0001/CPE183/CSC183', '1', '2', '3.0', '13', '1', '1', '13', '2', '10 .00' , '97,50', '0', '0');

А вот точная ошибка:

У Вас есть ошибка в вашем SQL синтаксиса; проверьте, что соответствует вашей версии сервера MySQL для правильного синтаксиса для использования рядом с 'INSERT INTO assign VALUES (' 75085 ',' rsam ',' CE0001/CZ0001/CPE183/CSC183 ',' 1 ',' 1 ! «» в строке 1

Если кто-то может указать на то, что я, очевидно, не хватает, я был бы признателен

+0

Вы пробовали перечислив свой список полей? – Machavity

+6

'mysql_query()' не разрешает несколько запросов. ['mysql_query() отправляет уникальный запрос (несколько запросов не поддерживаются) ...'] (http://us1.php.net/manual/en/function.mysql-query.php) – Sean

+0

Спасибо. Есть ли альтернатива? –

ответ

3

в документации mysql_query() говорит:

mysql_query() посылает уникальный запрос (несколько запросов не поддерживаются) в текущую активную базу данных на сервере, которая связана с указанным link_identifier.

Вы могли бы быть заинтересованы в mysql_multi_query():

Выполняет один или несколько запросов, которые сцепляются точкой с запятой.

2

Хотя mysql_query ограничивается одним оператором, эту ситуацию можно избежать, поскольку несколько записей могут быть вставлены в ту же таблицу только с одним утверждением:

INSERT INTO assign (...) 
VALUES(...), 
VALUES(...); 

Это позволит сэкономить на туда-обратно латентности (над несколькими mysql_query), что может иметь значение.

См Inserting multiple rows in mysql

+0

Благодарим вас за альтернативу, но, к сожалению, в списке также есть запросы «CREATE TABLE», которые я не включил здесь для простоты. –

Смежные вопросы