MySQLクエリでテーブル名の周囲にバックトックを使用する必要があるのはなぜですか。

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

  •  11-12-2019
  •  | 
  •  

質問

読み取り限りでは、Queryのテーブル名については、バックトックは必要ありません。(「table_name ...」に挿入)。さらに、私の知る限りでは、アンダースコアは名前で使用するための完全に許容される構文です.foo_bar。私の質問は、なぜこのクエリが失敗したのですか:

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経由で取得され、クエリで使用される前にTRIMとMYSQL_REAL_ESCAPE_STRINGで消毒されました。 $ QL_IMGは、サムネイルがアップロードされているディレクトリを参照しています。 table_name。

役に立ちましたか?

解決

バックトックは MySQL予約語 。使用されているTableNamesまたはColumnNamesにno spacesがある場合は、予約キーワードを使用しなかった場合、それらはオプションです。

この ページ 許容文字を指示するスキーマで使用されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top