2017-02-12 5 views
0

я программка некоторых PHP скриптов и я написал этот SQL-запрос (например):неверный оператор sql - апострофы?

INSERT INTO \`table1\` (\`article\`, \`typ\`) 
    VALUES(\`test\`, \`test2\`) 

этот запрос работает.

моя проблема заключается в том, что если я пишу имя таблицы и столбцы, как этот «table1» я получаю сообщение об ошибке SQL: SQL Error (1064): У вас ошибка в вашем SQL синтаксиса; проверьте руководство, соответствующее вашему серверу MariaDB. Версия для правильного синтаксиса для использования рядом с '' article ',' typ ') VALUES (' test ',' test1 ')'

Кто-нибудь знает, почему я должен его написать как эта `table1` и почему она не работает с нормальным -> '?

Сервер-Typ: MariaDB

сервер Версия: 10.1.9-MariaDB - mariadb.org дистрибутив

сервер Zeichensatz: UTF-8 Unicode (utf8)

ответ

0

Это тоже долго для комментария. Правильный способ написания кода является:

INSERT INTO table1(article, typ) 
    VALUES ('test', 'test2') 

Все идентификаторы (имена таблиц и столбцов) являются допустимыми именами. Им не нужно бежать. Следовательно, никаких обратных сигналов не требуется.

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

INSERT INTO table1(article, typ) 
    VALUES ('`test`', '`test2`'); 

Но это кажется маловероятным.

+0

Мне очень жаль .... Я сделал обратные такты, потому что в предварительном просмотре я не могу видеть «коды В порядке, мне не нужны« имена столбцов ». Я попробовал, и это работает, так много и жаль моего глупого вопроса. такой простой ... omg ... – Mark