プリペアド ステートメントは、データベースのセキュリティとパフォーマンスを強化するために不可欠なツールです。ただし、CodeIgniter はプリペアド ステートメントをネイティブにサポートしていないことに注意することが重要です。それにもかかわらず、大きな利点を提供する同様のアプローチであるクエリ バインディングを採用できます。
CodeIgniter は、疑問符 (?) が機能する名前のないクエリ バインディングを採用しています。 SQL クエリ内のプレースホルダー。これらのプレースホルダーは、クエリ関数に渡される配列で指定された値に自動的に置き換えられます。
例:
$sql = "SELECT * FROM tbl_user WHERE uid = ? AND activation_key = ?"; $this->db->query($sql, array($uid, $activation_key));
ただし、CodeIgniter には明示的な要素がありません。名前付きバインディング (:id や :key など) のサポートは、疑問符を名前付きプレースホルダーに置き換えません。準備されたステートメントの使用を示します。名前付きバインディングは、クエリ バインディング内で別の構文の代替を提供するだけです。
? を使用することを理解することが重要です。または :foo はステートメントの準備を意味しません。プリペアド ステートメントには、prepare() とexecute() という 2 つの異なる関数呼び出しが必要ですが、CodeIgniter ではサポートされていません。
プリペアド ステートメントがないにもかかわらず、クエリ バインディングにはいくつかの機能があります。利点:
以上がCodeIgniter はプリペアド ステートメントをサポートしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。