Keduanya. Pernyataan yang disiapkan akan melindungi Anda dari injeksi SQL jika, dan hanya jika, Anda menggunakannya dengan cara yang benar. Hanya 'menggunakan' pernyataan yang disiapkan tidak akan membantu jika Anda masih menginterpolasi variabel untuk nama tabel/kolom misalnya.
$stmt = "SELECT * FROM $table WHERE $column = ?"; //not good...