Pourquoi devais-je utiliser des backtsks autour du nom de la table dans ma requête MySQL?
Question
Autant que j'ai lu, les backtsticks ne sont pas obligés, par exemple, des noms de table dans les requêtes: ("Insert dans Table_Name ...."). De plus, à ma connaissance, des traits de soulignement sont une syntaxe parfaitement acceptable à utiliser dans les noms: FOO_BAR. Ma question est donc, pourquoi cette requête a-t-elle échoué:
mysql_query("INSERT INTO quick_links WHERE ...etc");
Quand cette requête a fonctionné parfaitement:
mysql_query("INSERT INTO `quick_links` WHERE ...etc");
sont "rapides" ou "liens" des mots réservés ??? Je ne le pensais pas, mais encore une fois, je suis assez nouveau à MySQL, alors je m'excuse. En outre, utilise des backticks nécessaires dans certains "moteurs de stockage" (référencement phpmyadmin pour la terminologie)? J'utilise "Innodb" si cela fait de la différence.
Merci pour les réponses, je suis nouveau à MySQL, et j'aime bien m'assurer que je comprends des nuances comme celles-ci.
Ma requête complète était ceci:
mysql_query("INSERT INTO `quick_links` VALUES (
'$user_id', '$ql_name', '$ql_url', '$ql_img'
)");
$ ql_url et $ ql_name ont été obtenus via $ _Post puis assainis avec la garniture et MySQL_Real_Escape_string avant d'être utilisés dans la requête. $ ql_img est simplement une URL qui se réfère à un répertoire dans lequel une vignette est téléchargée et $ user_id est là pour identifier l'utilisateur particulier qui est connecté. Les deux requêtes étaient exactement identiques, littéralement, à l'exception des backtstics autour du nom de la table.
La solution
Backtick ne sont utilisés que pour échapper à no spaces
dessus.
Ceci page indique que les caractères admissibles soientutilisé dans le schéma.