私が読んだ限りでは、たとえば、クエリのテーブル名( "INSERT INTO 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は、サムネイルがアップロードされているディレクトリを参照するURLであり、$ user_idは、ログインしている特定のユーザーを識別するためにあります。両方のクエリは、文字通り、周りのバッククォートを除いて、まったく同じでした。 table_name。