Anda benar, pernyataan nyata yang disiapkan harus didukung oleh server. Benar-benar siap berarti menanyakan database dalam dua langkah.
Langkah pertama adalah mengirimkan template kueri, yang dapat dikompilasi sebelumnya oleh server. Mesin database juga mempersiapkan terlebih dahulu rencana eksekusi (kebanyakan, indeks apa yang akan digunakan untuk melayani kueri yang sebenarnya).
Langkah kedua adalah memberikan nilai aktual ke placeholder dan menjalankan kueri aktual dengan parameter ini.
Ini biasanya memungkinkan eksekusi yang lebih cepat dari beberapa kueri serupa, karena 1. kueri telah dikompilasi sebelumnya (rencana eksekusi sudah dihitung) dan 2. hanya nilai parameter yang dikirim selanjutnya.
Kueri yang diemulasi hanyalah gula sintaksis, yang hanya memungkinkan pengiriman yang lebih mudah (bukan eksekusi yang lebih cepat) dari beberapa kueri serupa yang berurutan. Pernyataan SQL lengkap dikirim ke server setiap kali kueri yang diemulasi dijalankan.
Saat server tidak mendukung pernyataan yang disiapkan secara nyata, tetap disarankan untuk menggunakan pernyataan yang disiapkan yang diemulasi, karena driver masih menangani nilai pelolosan untuk Anda, membuat injeksi SQL lebih kecil kemungkinannya.