PDO 準備済みステートメント - パラメーター名でのコロンの使用
質問
PDO では、一部の開発者は名前付きパラメーター名の前にコロン (:) を使用します。パラメータを省略するものもあります。どちらのアプローチも機能しますが、コロンを使用する重要性に関して混乱があります。
TL;DR
SQL 文字列ではコロンは必須ですが、オプション ステートメントまたはバインディングを実行するときパラメータ。
説明
ステートメント (SQL 文字列) を準備する場合:
- パラメータ名の前にコロン (:) を使用する必要があります。列名とパラメータ名のあいまいさを防ぎます。例: INSERT INTO Table1 (column1, column2) VALUES (:column1, :column2)
ステートメントまたはバインド パラメーターを実行する場合:
- コロン (:) はオプションです。コロンが省略された場合、PHP は自動的にコロンを追加します。例: $insertRecord->execute(['column1' => $column1, 'column2' => $column2]);
PHP ソース コード分析
PHP ソース コードを調べると、次のことがわかります。動作:
- pdo_sql_parser.c では、パラメーター名の最初の文字のみコロンを使用できます。
- pdo_stmt.c では、bindParam() 内のパラメーター名または実行() が「:」で始まらない場合、コロンが自動的に追加されます。
ベストプラクティス
コロンの使用は技術的に必須ではありませんが、一貫性、読みやすさ、IDE での検索の容易さのために推奨されます。
以上がPDO 名前付きパラメータではコロンは重要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。