MySQL 構文エラーのトラブルシューティング: 予約キーワードの場合
PHP スクリプトを使用して複数の MySQL データベース テーブルを作成すると、イライラする「SQL 構文エラー」メッセージが表示されることがよくあります。 よくある原因は、テーブル名または列名として MySQL の予約語が意図せず使用されることです。
このチュートリアルでは、このようなエラーの解決に重点を置き、特に予約語「order」をテーブル名として使用することで生じる問題に対処します。 「order」は MySQL のキーワードであり、データ取得の順序を制御するため、構文の競合が発生します。
解決策には、バッククォートを使用して予約語をエスケープすることが含まれます。 修正された SQL ステートメントは次のとおりです:
<code class="language-sql">$sql = "CREATE TABLE `order`( order_id INT UNSIGNED NOT NULL AUTO_INCREMENT, user_id INT UNSIGNED NOT NULL, transaction_id VARCHAR(19) NOT NULL, payment_status VARCHAR(15) NOT NULL, payment_amount DECIMAL(6,2) UNSIGNED NOT NULL, payment_date_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (order_id), FOREIGN KEY (user_id) REFERENCES user (user_id) )ENGINE=InnoDB DEFAULT CHARSET=utf8";</code>
ベスト プラクティスとして、予約キーワードの使用は完全に避けてください。 予約されていないわかりやすい名前を選択すると、データベース スキーマの可読性が向上し、将来の構文上の問題が防止されます。
以上がMySQL テーブル名で予約語を使用するときに「SQL 構文にエラーがあります」というメッセージを修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。