両方。プリペアドステートメントは、SQLインジェクションを正しい方法で使用する場合にのみ、SQLインジェクションから保護します。たとえば、テーブル/列名の変数をまだ補間している場合は、プリペアドステートメントを「使用」するだけでは役に立ちません。
$stmt = "SELECT * FROM $table WHERE $column = ?"; //not good...
両方。プリペアドステートメントは、SQLインジェクションを正しい方法で使用する場合にのみ、SQLインジェクションから保護します。たとえば、テーブル/列名の変数をまだ補間している場合は、プリペアドステートメントを「使用」するだけでは役に立ちません。
$stmt = "SELECT * FROM $table WHERE $column = ?"; //not good...