予約語による SQL クエリの課題の克服: 'Order' のケース
保護されたものと同じ名前を共有するテーブルに対する SQL クエリの作成MySQL のキーワードは課題を引き起こす可能性があります。予約語 'order' が構文エラーを引き起こす特定のケースを見てみましょう。
問題
次のクエリは実行に失敗し、構文エラーが発生します。
mysql_query("SELECT * FROM order WHERE orderID = 102;");
エラー メッセージは、「order」付近の構文の問題を強調しています。 WHERE'.
解決策
'Order' は MySQL の予約語です。つまり、言語内で特別な目的があり、テーブルやテーブルとして使用することはできません。追加の処理を行わないフィールド名。これを解決するには、テーブル名をエスケープ文字で囲みます:
mysql_query("SELECT * FROM `order` WHERE orderID = 102;");
'order' をバッククォート (`) で囲むと、識別子として扱われ、クエリが正常に実行されます。
その他の考慮事項
一般に、テーブル名またはフィールド名として予約語を使用しないことをお勧めします。潜在的な競合を防ぐため。ただし、必要な場合は、適切な文字を使用してエスケープすることを忘れないでください。
MySQL の予約語の詳細については、ドキュメントを参照してください: https://dev.mysql.com/doc/refman/5.5 /en/keywords.html
以上が「order」などの予約語によって引き起こされる SQL 構文エラーを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。