Tutorial ini adalah kelanjutan dari Tutorial sebelumnya. Tutorial kali ini membahas operasi CRUD dengan menggunakan ektensi MySQLi. MySQLi adalah ektensi PHP yang digunakan untuk melakukan koneksi ke database MySQL. Huruf i di akhir artinya Improved (Yang disempurnakan) . Di tutorial sebelumnya sudah kita bahas koneksi database dengan ektensi default MySQL. Ada beberapa alasan mengapa KITA harus migrasi kode PHP dari kode seperti mysql_query()
ke ektensi MySQLi ini. Catatan penting disini, dari sisi struktur project, struktur tabel dan interface tidak ada perubahan. Perubahan dari mySQL ke MySQLi ada dibelakang layar, terutama dari sisi performa menunjukan msyqli lebih cepat dibanding mysql.
Berikut ini adalah alasan mengapa mulai sekarang sebaiknya anda menggunakan MySQLi dalam pemrograman PHP MySQL
Point | MySQL | MySQLi |
Pengembangan | Sudah tidak lagi di kembangkan | Masih terus dikembangkan |
Support Resmi Deprecated |
Long term support |
|
Mendukung OOP | Tidak | Ya |
Mendukung Prepare statement | Tidak | Ya |
Mendukung Store procedur | Tidak | Ya |
Mendukung Transaksi (commit, rollback) | Tidak | Ya |
Dari tabel perbandingan diatas saja sudah sangat jelas bahwa lebih banyak kelebihan MySQLi ketimbang ektensi MySQL. Selain itu, MySQLi juga bisa digunakan secara prosedural ataupun menggunakan OOP, berikut ini gambaran fungsinya agar anda punya gambaran real tentang perbedaan kodenya.
Tabel perbandingan MySQL dan MySQLi
Hal | MySQL | MySQLi Prosedural | MySQLi OOP |
Koneksi database | mysql_connect() | mysqli_connect() | $db = new mysqli(db_host,db_user,db_pass,db_name); |
Query select | mysql_query() | mysqli_query() | $db->query($sql) |
Jadi, dengan MySQLi anda masih bisa menggunakan gaya prosedural ataupun OOP, tergantung kebiasaan anda. JIka kita lihat sekilas, gaya prosedural MySQLi sama saja dengan MysQL cuma fungsinya ditambah i, sebagai contoh mysql_query
menjadi msyqli_query()
.
mengecek dukungan MySQLi di PHP
Untuk memastikan anda bisa memakai fungsi MySQLi, dari menu XAMPP buka phpinfo() maka jika ada tampilan berikut ini, dipastikan anda MySQLi didukung di server.

Sample Code CRUD
Interface MysqlI Bisa digunakan secara prosedural ataupun OOP, di sini saya hanya memberikan sample dengan OOP dan prepare statement yang akan memudahkan anda saat memakai Framework PHP.
Koneksi database
define('db_host','localhost'); define('db_user','root'); define('db_pass',''); define('db_name','candralab'); $db = new mysqli(db_host,db_user,db_pass,db_name); if($db->connect_errno > 0){ die('Unable to connect to database [' . $db->connect_error . ']'); }
Tampil data
$sql="select * from kampus "; if(!$result = $db->query($sql)){ die(' query error [' . $db->error . ']'); } while($kampus = $result->fetch_object()){ echo $kampus->nama; echo $kampus->alamat; }
insert
$sql = "INSERT INTO kampus(nama,alamat) VALUES(?,?)"; $stmt = $db -> prepare($sql); $stmt -> bind_param('ss',$nama, $alamat); $stmt -> execute();
update
$sql = "update kampus set nama=?, alamat=? where idkampus=?"; $stmt = $db -> prepare($sql); $stmt -> bind_param('ssi',$nama, $alamat,$id); $stmt -> execute();
delete
$sql = "delete from kampus where idkampus=?"; $stmt = $db -> prepare($sql); $stmt -> bind_param('i',$id); $stmt -> execute();
Perhatikan pada baris $stmt->bind_param'typedata',$param1,param2...)
Tipe data di param ini hanya bisa di isi dengan 4 jenis yaitu
- i Integer
- dDouble, bilangan double
- s String
- b Blob.
Yang paling sering dipakai adalah parameter i dan s. jumlah parameter pertama tipe data ini harus sesuai dengan jumlah datanya. Perhatikan waktu insert butuh 2 parameter, update 3 parameter dan delete 1 paramater. Sekali lagi, tolong pahami bagian ini, tanpa anda memahami bagian ini, code anda tidak akan berjalan sebagaimana mestinya.
OK, sampai sini dulu. Selanjutnya akan saya bahas tutorial PHP dengan PDO? apa itu PDO? simplenya begini, sekarang anda pake MySQL, terus kalau si BOS minta pakai oracle, berapa baris kode yang harus anda ganti? temukan jawabannya di tutorial selanjutnya. Happy
Kak minta File Pdf tutorial Php dan Myslqi dong kak..
Kirim ke email aku kak..
please buat Tugas kak..:(
KAK minta file tutorial Php Mysqli dong kak…
Kirimnya ke e mail kak..
alfarelrizky99@gmail.com
Please kak buat tugas..;(:(
PHP Exception
maaf om mau tanya apa bedanya
define(‘db_host’,’localhost’);
define(‘db_user’,’root’);
define(‘db_pass’,”);
define(‘db_name’,’candralab’);
dengan
$mysql_hostname = “localhost”;
$mysql_user = “root”;
$mysql_password = “”;
$mysql_database = “candralab”;
$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die(“Could not connect database”);
mysql_select_db($mysql_database, $bd) or die(“Could not select database”);
$db = mysqli_connect($mysql_hostname,$mysql_user,$mysql_password,$mysql_database);
saya ada yg gk ke baca data kalo gk make salah satu koneksi data base diatas
mohon bantuannya terimakasih (y)
ane pernah ngalami.. kalo gak salah define = mendefinisikan artinya data variabel tersebut tidak bisa diubah… tetap itu.. kalo misalkan variabel biasa kan contoh :
$asal = 2;
$asal = 3;
yang muncul pasti angka 3. soalnya pendefinisian isi dari variabel dapat berubah,, gak kaya define… pasti error.
Fatal error: Call to a member function bind_param() on a non-object, itu kenapa ya pak padahal type datanya gak bermasalah…
untuk cara prosedural apakah hanya mengubah mysql menjadi msqli, jadi hanya tinggal kita tambah ” i ” saja untuk querynya?
untuk cara prosedural apakah hanya mengubah mysql menjadi msqli, jadi hanya tinggal kita tambah ” i ” saja untuk querynya?
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/u412719536/public_html/koneksi.php on line 6
Kalo kaya gini knp ya ? Erornya pas dihosting
Padahal di xampp ga ada eror
itu karena masalah error reporting. tambahkan dibaris kedua error_reporting(0);
Bisa jadi karena mysql extention sudah tidak didukung di hosting tersebut.
setelah saya sedikit modifikasi pada tombol add kok muncul seperti ini ya pak Fatal error: Call to a member function bind_param() on a non-object, itu kenapa padahal type datanya gak bermasalah…
kemungkinan mysqli tidak terinstall di php
Mas, mau tanya kok waktu saya klik tombol add pada kolom nama dan alamat muncul error ini “Notice: Undefined variable: kampus in E:\Xampp\htdocs\crud\candralab-phpdb\mysqli\kampus\kampus_form.php on line 20Notice: Trying to get property of non-object in E:\Xampp\htdocs\crud\candralab-phpdb\mysqli\kampus\kampus_form.php on line 20“..Itu maksudnya apa
tambahkan baris error_reporting(0); di baris pertama index.php