Почему мне пришлось использовать обратные кавычки вокруг имени таблицы в моем запросе MySQL?

StackOverflow https://stackoverflow.com//questions/12658763

  •  11-12-2019
  •  | 
  •  

Вопрос

Насколько я читал, обратные кавычки не требуются, например, для имен таблиц в запросах:("INSERT INTO имя_таблицы...").Кроме того, насколько мне известно, символы подчеркивания являются вполне приемлемым синтаксисом для использования в именах:фу_бар.Тогда мой вопрос: почему этот запрос не удался:

mysql_query("INSERT INTO quick_links WHERE ...etc");

когда этот запрос работал отлично:

mysql_query("INSERT INTO `quick_links` WHERE ...etc");

Являются ли «быстрые» или «ссылки» зарезервированными словами???Я так не думал, но опять же, я новичок в MySQL, поэтому прошу прощения.Кроме того, необходимо ли использование обратных кавычек в некоторых «Механизмах хранения» (ссылаясь на терминологию phpMyAdmin)?Я использую «InnoDB», если это имеет какое-то значение.

Спасибо за ответы, я новичок в MySQL, и мне хотелось бы убедиться, что я понимаю подобные нюансы.

Мой полный запрос был таким:

mysql_query("INSERT INTO `quick_links` VALUES (
    '$user_id', '$ql_name', '$ql_url', '$ql_img'
)"); 

$ql_url и $ql_name были получены через $_POST, а затем очищены с помощью обрезки и mysql_real_escape_string перед использованием в запросе.$ql_img — это просто URL-адрес, ссылающийся на каталог, в который загружена миниатюра, а $user_id предназначен для идентификации конкретного пользователя, вошедшего в систему.Оба запроса были абсолютно одинаковыми, за исключением обратных кавычек вокруг table_name.

Это было полезно?

Решение

Backtick используется только для выхода Зарезервированные слова MySQL.Они являются необязательными, если не используется ни один из зарезервированные ключевые слова при условии, что используемые имена таблиц или столбцов имеют no spaces в теме.

Этот страница сообщает допустимые символы, которые будут использоваться в схеме.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top