Mana yang lebih baik, MySQL atau MySQLi? Dan mengapa? Yang mana yang harus saya gunakan?
Maksud saya lebih baik tidak hanya dalam hal kinerja, tetapi fitur lain yang relevan.
Jika Anda melihat Ikhtisar Peningkatan MySQL , ia akan memberi tahu Anda semua yang perlu Anda ketahui tentang perbedaan antara keduanya.
Fitur bermanfaat utama adalah:
mysql_*()
sudah tidak digunakan lagi dan akan segera dihapus . Anda tidak boleh menggunakannya untuk kode baru.Ada halaman manual yang didedikasikan untuk membantu memilih antara mysql, mysqli dan PDO di
Tim PHP merekomendasikan mysqli atau PDO_MySQL untuk pengembangan baru:
Halaman ini juga memiliki matriks fitur yang membandingkan API ekstensi. Perbedaan utama antara mysqli dan mysql API adalah sebagai berikut:
* http://news.php.net/php.internals/53799
Ada matriks fitur tambahan yang membandingkan perpustakaan (mysqlnd baru versus libmysql) di
dan artikel blog yang sangat teliti di
sumber
Saya telah meninggalkan menggunakan mysqli. Itu terlalu tidak stabil. Saya sudah punya pertanyaan yang membuat crash PHP menggunakan mysqli tetapi berfungsi baik dengan paket mysql. Juga mysqli mogok di kolom LONGTEXT . Bug ini telah dimunculkan dalam berbagai bentuk sejak setidaknya 2005 dan tetap rusak . Jujur saya ingin menggunakan pernyataan yang disiapkan tetapi mysqli tidak cukup dapat diandalkan (dan tampaknya tidak ada yang mau memperbaikinya). Jika Anda benar-benar ingin pernyataan yang disiapkan, pergi dengan PDO.
sumber
MySQLi adalah singkatan dari MySQL ditingkatkan. Ini adalah antarmuka berorientasi objek ke binding MySQL yang membuat hal-hal lebih mudah digunakan. Ini juga menawarkan dukungan untuk pernyataan yang disiapkan (yang sangat berguna). Jika Anda menggunakan PHP 5, gunakan MySQLi.
sumber
Apa yang lebih baik adalah PDO; itu antarmuka yang kurang kekar dan juga menyediakan fitur yang sama dengan MySQLi.
Menggunakan pernyataan yang disiapkan itu baik karena menghilangkan kemungkinan injeksi SQL; menggunakan pernyataan yang disiapkan pihak server buruk karena meningkatkan jumlah perjalanan pulang pergi.
sumber
bagi saya, pernyataan yang disiapkan adalah fitur yang harus dimiliki. lebih tepatnya, pengikatan parameter (yang hanya berfungsi pada pernyataan yang disiapkan). itu satu-satunya cara yang benar-benar waras untuk memasukkan string ke dalam perintah SQL. saya benar-benar tidak mempercayai fungsi 'melarikan diri'. koneksi DB adalah protokol biner, mengapa menggunakan sub-protokol ASCII terbatas untuk parameter?
sumber