2013-03-24 4 views
0

У меня есть запрос, что работа в PHPMyAdmin, но не работает на PHP (mysqli)MySQL работа запрос на PHPMyAdmin, но не работает на MySQLi

, где проблема?

Запрос:

INSERT INTO `SepidarSoft_Portal`.`Archive_Media` SET `CTime`='1364135670',`UTime`='1364135670',`PID`='',`State`='1',`Sequence`='0',`Subject`='Hojom Marg (www.Parstafrih.ir)',`Text`='',`Description`='',`Definition`='',`KeyWord`='',`ETag`='',`Access`='',`LinkToPage`='',`Attachment`='[{\"Name\":null,\"Kind\":null,\"Size\":false,\"Address\":\"27\",\"More\":{\"Original\":1}}]',`STime`='0',`ETime`='0'; 

    SET @LAST_ID:=LAST_INSERT_ID(); 

    INSERT INTO `SepidarSoft_Portal`.`Archive_Media_MoreInfo` (`id`,`Key`,`Value`) VALUES (@LAST_ID,'Instrumental','1'),(@LAST_ID,'KindFile','صوتی'),(@LAST_ID,'Genre','نغمه'),(@LAST_ID,'SName','Amir Tajik (www.Parstafrih.ir)'),(@LAST_ID,'Events','[[\"\"]]'),(@LAST_ID,'Album','(www.Parstafrih.ir)'),(@LAST_ID,'Composer',''),(@LAST_ID,'Adjustment',''),(@LAST_ID,'Subtitle','[object HTMLInputElement]'),(@LAST_ID,'Release',''); 

Ошибка:

#1064 -You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET @LAST_ID:=LAST_INSERT_ID(); 

1) Я использую PHP mysqli_multi_query для этого

+0

Вы вставки в MySQL Возможным ' ''? – samayo

+0

@phpNoOb нет это экспорт вставки запроса '\ '' –

+1

Не понимаю, почему кто-то занижал этот вопрос! –

ответ

0

Ваш вопрос прост.

Backticks (`) используются для выполнения команд в php. Вот почему вам дается синтаксическая ошибка. Замените их одиночными или двойными кавычками в своих функциях mysqli.

Пожалуйста, прочтите следующий документ, и вы должны быть отсортированы :)

Backticks on php.net

+0

i change ('), но mysql дал мне ошибку для этого изменения. –

+0

От вашей ссылки 'Примечание: в отличие от некоторых других языков, обратные ссылки не могут использоваться в строках с двойными кавычками.' So 'mysqli_multi_query (" INSERT INTO \ 'SepidarSoft_Portal \'. \ 'Archive_Media \' SET ... ")' не будет выполните команду. Допустимо использовать backticks, когда ваше имя таблицы и/или столбца является зарезервированным словом MySQL. см. также - http://stackoverflow.com/a/11321508/689579 – Sean

+0

Кроме того, ваше предложение использовать «одиночные или двойные кавычки в ваших функциях mysqli» не будет работать, если их MySQL не находится в режиме [ANSI] (http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html) с использованием [ANSI_QUOTES] (http://dev.mysql.com/doc/refman/5.0/en/server-sql- mode.html # sqlmode_ansi_quotes), который [MySQL по умолчанию не имеет специальных режимов включен] (http://dev.mysql.com/doc/refman/5.0/en/faqs-sql-modes.html#qandaitem-B-3 -1-7). – Sean

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