Jawaban yang diedit.
Setelah memiliki pengalaman dengan kedua API ini, saya akan mengatakan bahwa ada 2 fitur level pemblokiran yang membuat mysqli tidak dapat digunakan dengan pernyataan asli yang disiapkan.
Mereka telah disebutkan dalam 2 jawaban yang sangat baik (namun diremehkan):
- Mengikat nilai dengan jumlah placeholder yang berubah-ubah
- Mengembalikan data sebagai array belaka
(keduanya juga disebutkan dalam jawaban ini )
Untuk beberapa alasan mysqli gagal dengan keduanya.
Saat ini ada beberapa peningkatan untuk yang kedua ( get_result ), tetapi hanya berfungsi pada instalasi mysqlnd, berarti Anda tidak dapat mengandalkan fungsi ini dalam skrip Anda.
Namun itu tidak memiliki nilai demi nilai bahkan hingga hari ini.
Jadi, hanya ada satu pilihan: PDO
Semua alasan lain, seperti
- bernama placeholder (gula sintaks ini terlalu berlebihan)
- dukungan basis data yang berbeda (tidak ada yang benar-benar pernah menggunakannya)
- ambil ke objek (hanya gula sintaks yang tidak berguna)
- perbedaan kecepatan (tidak ada)
tidak penting secara signifikan.
Pada saat yang sama kedua API ini tidak memiliki beberapa fitur penting yang nyata , seperti
- placeholder pengidentifikasi
- placeholder untuk tipe data yang kompleks untuk membuat pengikatan dinamis kurang sulit
- kode aplikasi yang lebih pendek.
Jadi, untuk memenuhi kebutuhan kehidupan nyata , kita harus membuat perpustakaan abstraksi sendiri, berdasarkan salah satu API ini, menerapkan placeholder yang diuraikan secara manual. Dalam hal ini saya lebih suka mysqli, karena memiliki tingkat abstraksi yang lebih rendah.