Warum musste ich in meiner MySQL-Abfrage Backticks um den Tabellennamen verwenden?

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

  •  11-12-2019
  •  | 
  •  

Frage

Soweit ich gelesen habe, sind Backticks beispielsweise für Tabellennamen in Abfragen nicht erforderlich:("IN Tabellenname EINFÜGEN....").Außerdem sind meines Wissens Unterstriche eine vollkommen akzeptable Syntax für Namen:foo_bar.Meine Frage ist dann, warum diese Abfrage fehlgeschlagen ist:

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

als diese Abfrage perfekt funktionierte:

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

Sind "schnelle" oder "Links" reservierte Wörter???Das habe ich nicht gedacht, aber andererseits bin ich ziemlich neu in MySQL, also entschuldige ich mich.Ist auch die Verwendung von Backticks in bestimmten "Speicher-Engines" erforderlich (Referenzierung von phpMyAdmin für die Terminologie)?Ich benutze zufällig "InnoDB", wenn das einen Unterschied macht.

Danke für die Antworten, ich bin neu in MySQL und ich möchte sicherstellen, dass ich Nuancen wie diese verstehe.

Meine vollständige Anfrage lautete wie folgt:

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

$ ql_url und $ ql_name wurden über $ _POST abgerufen und dann mit trim und mysql_real_escape_string bereinigt, bevor sie in der Abfrage verwendet wurden.$ ql_img ist einfach eine URL, die auf ein Verzeichnis verweist, in das ein Thumbnail hochgeladen wird, und $ user_id dient dazu, den bestimmten Benutzer zu identifizieren, der angemeldet ist.Beide Abfragen waren buchstäblich genau gleich, mit Ausnahme der Backticks um den Tabellennamen.

War es hilfreich?

Lösung

Backtick werden nur zum Entkommen verwendet MySQL Reservierte Wörter.Sie sind optional, wenn keine der folgenden Optionen verwendet wurde reservierte Schlüsselwörter vorausgesetzt, die verwendeten Tabellen- oder Spaltennamen haben no spaces darauf.

Dieser Seite gibt die zulässigen Zeichen an, die im Schema verwendet werden sollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top