Düzenlenmiş cevap.
Bu API'ların her ikisiyle de biraz deneyim kazandıktan sonra, mysqli'yi yerel hazırlanmış ifadelerle kullanılamaz hale getiren 2 engelleme düzeyi özelliği olduğunu söyleyebilirim.
Zaten 2 mükemmel (ancak yolun altında kalan) cevapta belirtilmişlerdir:
- Değerleri isteğe bağlı yer tutucu sayısına bağlama
- Verileri salt dizi olarak döndürme
(her ikisi de bu cevapta belirtilmiştir )
Nedense mysqli her ikisiyle de başarısız oldu.
Günümüzde ikincisi için bazı iyileştirmeler yapıldı ( get_result ), ancak yalnızca mysqlnd kurulumlarında çalışır, komut dosyalarınızda bu işleve güvenemeyeceğiniz anlamına gelir.
Yine de, bugüne kadar bile bir değeri yoktur.
Yani, tek bir seçenek var: PDO
Gibi diğer tüm nedenler
- yer tutucular olarak adlandırıldı (bu sözdizimi şekeri abartılıyor)
- farklı veritabanları desteği (aslında hiç kimse kullanmamış)
- nesneye getir (sadece işe yaramaz sözdizimi şekeri)
- hız farkı (yok)
önemli bir önemi yok.
Aynı zamanda bu iki API'ler azından bazı yoksun gerçek önemli özellikleri gibi,
- tanımlayıcı yer tutucusu
- dinamik bağlamayı daha az zahmetli hale getirmek için karmaşık veri türlerinin yer tutucusu
- daha kısa uygulama kodu.
Bu nedenle, gerçek yaşam ihtiyaçlarını karşılamak için, bu API'lardan birine dayanarak manuel olarak ayrıştırılmış yer tutucular uygulayarak kendi soyutlama kütüphanesini oluşturmanız gerekir. Bu durumda mysqli'yi tercih ederim, çünkü daha az soyutlama seviyesine sahiptir.