Tutorial PHP MySQL Part 12: Perbedaan mysql dan mysqli extension PHP

Seperti yang pernah kita bahas dalam tutorial Jenis Koneksi PHP MySQL: PDO, mysqli, dan mysql extension, penggunaan mysql extension tidak lagi direkomendasikan (deprecated). Dalam tutorial PHP MySQL kali ini, kita akan membahas perbedaan mysql extension yang "lama" dengan versi barunya, yakni mysqli. Extension mysqli juga hadir dengan 2 jenis "rasa": procedural dan object oriented.


Perbedaan Antara mysql extension Dengan mysqli extension

Sepanjang tutorial PHP MySQL Part 4 sampai 11 di duniailkom ini, kita menggunakan extension mysql dari PHP untuk mengakses MySQL. Fungsi-fungsi yang kita pelajari tersebut (seperti fungsi mysql_connect, mysql_query, dan mysql_fetch_array) memang sudah tidak disarankan lagi, tetapi saya tetap membahasnya sebagai dasar bagi kita untuk masuk ke extension yang lebih baru: mysqli dan PDO.

Terhitung dari PHP versi 5.5, extension mysql tidak lagi disarankan penggunaannya dan berstatus deprecated, yang berarti mungkin akan dihapus pada PHP versi berikutnya. Kita disarankan untuk mulai beralih menggunakan mysqli atau PDO. Mari kita bahas tentang mysqli terlebih dahulu.

Mysqli merupakan kependekan dari MySQL Improved Extension. Seperti yang terlihat dari namanya, extension ini merupakan versi perbaikan dan penambahan dari extension mysql sebelumnya yang umum digunakan. Extension mysqli dibuat untuk mendukung fitur-fitur terbaru dari MySQL Server versi 4.1 keatas.

Secara garis besar, tidak ada perbedaan mencolok antara mysql extension dengan mysqli extension. Nama-nama fungsi didalam mysqli sebagian besar mirip dengan apa yang telah kita pelajari (extension mysql).

Sebagai contoh, untuk membuat koneksi dengan MySQL Server, di dalam mysql kita menggunakan fungsi mysql_connect(), sedangkan di dalam mysqli, kita menggunakan mysqli_connect(). Begitu juga dengan fungsi lain seperti mysql_query() menjadi mysqli_query().

Selain menambah huruf "i" di dalam nama fungsi, argumen-argumen yang dibutuhkan juga hampir mirip. Perbedaannya, jika di dalam extension mysql umumnya kita meletakkan argumen resources di akhir fungsi, maka di dalam mysqli, argumen ini diteletakkan di awal.

Sebagai contoh, di dalam mysql kita menulis:

mysql_query("SELECT * FROM mahasiswa_ilkom", $link)

Sedangkan di dalam mysqli penulisannya menjadi:

mysqli_query($link, "SELECT * FROM mahasiswa_ilkom")

Namun perbedaan paling mendasar di dalam mysqli adalah: mysqli mendukung cara penulisan object oriented programming.


Mengenal 2 jenis Mysqli Style: Procedural dan Object Oriented

Agar proses "migrasi" dari mysql ke mysqli tidak terlalu menyusahkan, PHP memberikan 2 alternatif cara penulisan mysqli.

  • Cara yang pertama adalah menggunakan procedural style. Cara ini mirip dengan extension mysql, dimana kita menggunakan fungsi-fungsi untuk mengakses database MySQL.
  • Cara kedua adalah dengan object oriented style. Dengan cara ini, kita menggunakan aturan penulisan pemrograman objek untuk berkomunikasi dengan MySQL.

Kedua jenis style pemrograman mysqli ini menggunakan nama fungsi dan method yang kurang lebih sama. Sebagai contoh, di dalam procedural style mysqli, terdapat fungsi mysqli_query(), sedangkan dalam OOP style mysqli, kita menggunakan method $mysqli->query(). Kita akan membahas lebih dalam tentang cara penggunaan 2 style ini nantinya.


Di dalam tutorial PHP MySQL kali ini kita telah membahas sekilas mengenai perbedaan extension mysql dengan extension mysqli yang lebih baru. Sesuai dengan instruksi dari manual MySQL, sebaiknya kita tidak menggunakan lagi extension mysql.

Dalam tutorial selanjutnya, kita akan mulai membahas cara penggunaan mysqli extension. Berikutnya dalam tutorial PHP MySQL duniailkom: Cara Menampilkan Data dengan mysqli PHP menggunakan procedural style.

19 Comments

  1. Bugi
    15 Jul 15
    • Andre
      16 Jul 15
  2. bayoes
    05 Feb 16
  3. risky27
    05 Feb 16
    • Andre
      07 Feb 16
  4. Sigit Purnomo
    12 Feb 16
    • Andre
      13 Feb 16
  5. fatchur
    07 Mar 16
  6. ucup
    24 Aug 16
  7. APajar P R
    08 Sep 16
  8. hilman
    10 Mar 17
    • Andre
      10 Mar 17
  9. journeykita
    19 Apr 18
  10. Anonymous
    27 Jul 18
    • Andre
      28 Jul 18
  11. Ari Prasetyawan
    19 Jan 20
    • Andre
      20 Jan 20
  12. Iwada
    20 Feb 21

Add Comment