第9章 データベース連携 / 第1回 模擬試験

PHPのプリペアドステートメントに関する次の記述のうち、正しいものはどれか。

SQLインジェクション攻撃を防ぐ効果はない。
SQL文とパラメータを分離して扱う。 正解
`bindValue()`と`bindParam()`は全く同じ機能を持つ。
プレースホルダは、名前付きプレースホルダのみが使用できる。
解説
プリペアドステートメントはSQLインジェクション攻撃を防ぐ効果があり、SQL文とパラメータを分離して扱います。`bindValue()`と`bindParam()`は似ていますが、参照渡しと値渡しで動作が異なります。プレースホルダは名前付きと疑問符(`?`)の両方が使用できます。 (参照: 独習PHP 第4版 第9章 データベース連携 9.5節 SQLクエリの発行 / 9.7節 パラメーター値のバインド p.438〜464)