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.
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.
Jawaban:
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:
Disarankan untuk menggunakan ekstensi mysqli atau PDO_MySQL. Tidak disarankan untuk menggunakan ekstensi mysql lama untuk pengembangan baru. Matriks perbandingan fitur terperinci disediakan di bawah ini. Kinerja keseluruhan dari ketiga ekstensi tersebut dianggap hampir sama. Meskipun kinerja ekstensi hanya berkontribusi sebagian kecil dari total waktu menjalankan permintaan web PHP. Seringkali, dampaknya serendah 0,1%.
Halaman ini juga memiliki matriks fitur yang membandingkan API ekstensi. Perbedaan utama antara mysqli dan mysql API adalah sebagai berikut:
mysqli mysql
Development Status Active Maintenance only
Lifecycle Active Long Term Deprecation Announced*
Recommended Yes No
OOP API Yes No
Asynchronous Queries Yes No
Server-Side Prep. Statements Yes No
Stored Procedures Yes No
Multiple Statements Yes No
Transactions Yes No
MySQL 5.1+ functionality Yes No
* 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
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.
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.
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?