PHP: Migrasi dari Ekstensi mysql ke mysqli

     Saat kita belajar cara membuat aplikasi, hal yang wajib kita pelajari adalah bagaimana caranya aplikasi kita bisa berinteraksi dengan database. Di PHP sendiri, database yang didukung ada banyak sekali, tapi yang paling populer dari pertama saya belajar sampai sekarang adalah MySQL, walaupun banyak juga yang pake Database lain tapi biasanya yang paling sering dipelajari pemula adalah MySQL. Saat pertama kali belajar berinteraksi dengan database MySQL di PHP kebanyakan kita pasti mempelajari ekstensi mysql_ seperti mysql_connect, mysql_query, mysql_fetch_array, de el el (semoga kedepannya pengguna ekstensi ini bisa terus berkurang).
     Tapi tahukah anda bahwa status ekstensi mysql_ ternyata sudah deprecated (disarankan untuk tidak digunakan lagi) sejak versi 5.5.x dan pada PHP 7 ekstensi mysql_ sudah benar-benar dihapus. Mengapa demikian? Tentunya Pengembang PHP tidak asal menghapus fitur-fitur ini tanpa alasan, ternyata ekstensi mysql_ ini sudah sangat rawan dan banyak kekurangannya. Sebagai alternatif lain, kita bisa mengganti ekstensi mysql_ yang sudah diperbarui yaitu ekstensi mysqli atau kita bisa menggunakan PDO (PHP Data Object). Bagi yang sudah terbiasa dengan ekstensi mysql mungkin akan agak kesulitan jika langsung beralih ke PDO karena PDO tidak mendukung pola pemrograman prosedural, artinya kita harus mengerti terlebih dahulu konsep Object Oriented Programming atau Pemrograman Berorientasi Objek.
     Jadi bagi yang belum terbiasa denga OOP ini, sangat disarankan untuk menggunakan ekstensi mysqli karena mysqli sendiri mendukung pola Pemrograman Prosedural dan Pemrograman Berorientasi Objek. 'i' di mysqli ini adalah improved yang artinya telah ditingkatkan. Pokoknya yang masih sering pake ekstensi mysql_ wajib tahu ini biar script yang kita buat enggak jadoel. Tutorial Migrasi dari mysql ke mysqli ini akan dibagi kedalam beberapa bagian, pertama yang lagi kita baca ini akan membahas cara koneksi PHP ke MySQL dengan ekstensi mysqli. Kemudian yang kedua kita akan bikin CRUD (Create Read Update and Delete) dengan ekstensi mysqli. Seperti yang sudah saya sebutkan diatas bahwa ekstensi mysqli ini mendukung Prosedural dan OOP, jadi pada setiap tutorialnya nanti akan dibahas kalau pake yang Prosedural kaya gimana dan kalau pake OOP kaya gimana. Oh iya, sebelum mengikuti tutorial ini pastikan anda sudah membuat database-nya terlebih dahulu, jika belum silahkan membuat-nya terlebih dahulu dengan mengikuti tutorial ini.

Koneksi dengan mysqli Berorientasi Objek

     Sebelum menggunakan langkah yang satu ini, saya asumsikan temen-temen sudah mengerti OOP dan tahu istilah-istilah dalam OOP. Oke langkah pertama jika kita ingin membuat koneksi dengan cara ini adalah meng-instance class mysqli (Kalau belum tahu apa itu instance silahkan baca-baca dulu tentang OOP). Class mysqli ini mempunyai metode constructor yang memiliki 4 parameter yaitu: namahost, username, password, namadatabase. Biar gak bingung coba lihat contoh dibawah:      Perhatikan script diatas, pertama kita instance class mysqli ke $koneksi, $koneksi ini sekarang menjadi sebuah objek yang akan kita sebut Database Handler atau db handler. $koneksi ini memiliki method-method yang akan kita gunakan untuk berinteraksi dengan database. Properti connect_error akan berisi pesan error jika terjadi error.
Info! Jika suatu variabel berisi integer, string, atau nilai lainnya selain angka 0 kemudian dicek di kondisi, maka akan dianggap sebagai TRUE.

Koneksi dengan mysqli Prosedural

     Cara ini sebetulnya kurang disarankan, tapi jika terlanjur belum terbiasa dengan OOP dan enggak bisa move on dari ekstensi mysql_ maka cara ini terpaksa kita pakai karena secara teknis tidak jauh berbeda dengan ekstensi mysql_. Daripada saya jelasin disini mending langsung liat contohnya:      Seperti yang kita lihat diatas, perbedaannya dengan ekstensi mysql_ adalah dibaris pertama. Kita langsung menyebutkan nama database-nya di mysqli_connect(). Fungsi mysqli_connect_errno() akan berisi kode error jika terjadi error dan fungsi mysqli_connect_error() berfungsi untuk menampilkan pesan error.
Info! Seperti yang sudah saya sebutkan jika suatu variabel berisi integer, string, atau nilai lainnya selain angka 0 kemudian dicek di kondisi, maka akan dianggap sebagai TRUE.

Sekian tutorial kali ini, semoga bermanfaat.
Mohon maaf bila masih ada kekurangan, jika ada pertanyaan silahkan layangkan di kolom komentar.
Wassalamu'alaikum Warahmatullahi Wabarakatuh..
Sumber gambar: http://www.onlinetuting.com/mysqli_connect-in-php-tutorial/


EmoticonEmoticon