ホームページ >データベース >mysql チュートリアル >カラム名として「from」と「to」を使用すると、MySQL で「予約語エラー」が発生するのはなぜですか?

カラム名として「from」と「to」を使用すると、MySQL で「予約語エラー」が発生するのはなぜですか?

DDD
DDDオリジナル
2024-12-28 01:07:09325ブラウズ

Why Do I Get a

SQL 構文エラー: "予約語エラー (from, to)"

エラー "SQLSTATE[42000]: 構文エラーまたはPHP で PDO を使用すると、「アクセス違反: 1064 SQL 構文にエラーがあります」というメッセージが表示される場合があります。イライラする。このエラーの考えられる原因の 1 つは、適切な引用符を付けずに列名に予約語を使用していることです。

SQL では、「from」や「to」などの特定の単語は予約キーワードであり、引用符なしで列名として使用することはできません。引用します。これは、エラー メッセージで「From、to、name、subject、message) VALUES 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください」として強調表示されています。

この問題を解決するには、バッククォート (`) を使用して予約語を引用する必要があります。 MySQL では、これはコードを次のように変更することを意味します。

$sql = "INSERT INTO messages (`from`, `to`, `name`, `subject`, `message`) VALUES (:from, :to, :name, :subject, :message)";

予約語を引用符で囲むことにより、それらをキーワードではなく列名として使用するつもりであることを SQL パーサーに通知します。これにより、構文エラーが解消され、クエリが正常に実行できるようになります。

一般的には、列名として予約語を完全に使用しないことをお勧めします。将来の構文の競合を避けるために、列の名前を変更することを検討してください。

以上がカラム名として「from」と「to」を使用すると、MySQL で「予約語エラー」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。