MySQL Vs. MySQLi dari PHP

MySQL Vs. MySQLi dari PHP.

Struktur berorientasi objek

MySQLi menyediakan satu set fungsi untuk struktur kode dengan gaya prosedural untuk membuat transisi MySQL lebih mudah. Namun, ia juga menyediakan fungsionalitas melalui satu set kelas berorientasi objek. Penggunaan gaya berorientasi objek dapat membuat integrasi MySQL lebih sesuai dengan fitur berorientasi objek versi PHP 5 dan sering menghilangkan kebutuhan untuk membuat variabel tambahan untuk mendukung operasi dan tugas MySQL. Sebagai contoh, berikut ini menunjukkan kode untuk terhubung ke server database dan membuka database di MySQL dan di MySQLi: MySQL: $ dbc = mysql_connect ("localhost", "user", "password"); $ db = mysql_select_database ("database");

MySQLi: $ db = new mysqli ("localhost", "user", "password", "database");

Instruksi yang disiapkan

Mungkin perbedaan terbesar antara MySQL dan MySQLi adalah dukungan yang terakhir untuk instruksi yang disiapkan. Dengan MySQL, Anda harus berhati-hati untuk menggunakan pernyataan melarikan diri di setiap string yang digunakan dalam kueri untuk mencegah serangan injeksi SQL. Dengan MySQLi dan instruksi yang disiapkan Anda dapat menghubungkan set parameter ke query dan mencocokkan yang terakhir dengan nilai-nilai yang berbeda yang ingin Anda gunakan dalam query. MySQLi bertanggung jawab untuk memastikan bahwa pernyataan melarikan diri digunakan dengan tepat di semua kode sebelum diterapkan dalam database. Sebagai contoh, kode berikut menyisipkan dua rekaman ke dalam tabel MySQL menggunakan MySQLi:

$ stmt = $ db-> prepare ("INSERT INTO PEOPLE (FullName, Email) nilai-nilai (?, ?); $ stmt-> bind_param (" ss ", $ fullname, $ email); $ fullname =" John Johnson "; $ email = "[email protected]"; $ stmt-> execute (); $ fullname = "Mary Johnson"; $ email = "[email protected]"; $ stmt-> execute (); $ stmt-> tutup ();

Peningkatan efisiensi

Karena instruksi yang disiapkan dan peningkatan efisiensi lainnya, ekstensi MySQL harus bekerja lebih cepat daripada instruksi MySQL yang setara. Seperti yang dapat Anda lihat pada contoh sebelumnya menggunakan instruksi yang disiapkan, beban berlebih dari insert hanya diperlukan sekali, ketika instruksi disiapkan. Dengan pernyataan insert yang setara di MySQL, insert overload harus diulang dengan setiap query ke database.

Transaksi

MySQLi menyediakan fungsionalitas tambahan dalam bentuk transaksi. Dengan ekstensi MySQLi Anda dapat mengelompokkan satu set operasi data dalam suatu transaksi dan menjalankan operasi bersama sebagai satu transaksi. Jika operasi transaksi gagal, seluruh operasi gagal dan semua perubahan yang telah dibuat dibalik. Misalnya, Anda mungkin menggunakan transaksi saat menjadwalkan transfer uang antara dua akun karena, kecuali kedua sisi operasi berhasil, operasi tidak berhasil, dan Anda tidak ingin meninggalkan keadaan di mana akun telah didebet tetapi yang lainnya belum terakreditasi.