Dalam tutorial PHP MySQL kali ini kita akan membahas cara menampilkan data MySQL dengan menggunakan mysqli extension. Karena mysqli memiliki 2 cara penggunaan: procedural dan object-oriented, pada tutorial ini kita akan fokus pada penggunaan procedural style.
Secara garis besar, cara penggunaan mysqli secara procedural (menggunakan fungsi-fungsi) sangat mirip dengan mysql extension. Karena itu jika anda sudah memahami cara pemakaian mysql extension (yang telah kita bahas), tidak akan kesulitan untuk beralih ke mysqli.
Cara Membuat Koneksi MySQL Dengan Fungsi mysqli_connect()
Untuk membuat koneksi antara PHP dengan MySQL Server, kita menggunakan fungsi mysqli_connect(). Fungsi mysqli_connect() ini membutuhkan argumen yang sama dengan fungsi mysql_connect(), yakni: alamat host, nama user, dan password user.
Sebagai contoh, untuk masuk kedalam MySQL di localhost menggunakan user root dan dengan password "qwerty", kita menggunakan kode program sebagai berikut:
<?php $link = mysqli_connect("localhost", "root", "qwerty"); ?>
Sebagai fitur tambahan, fungsi mysqli_connect() memiliki argumen ke-4 yang bersifat opsional. Kita bisa menambahkan nama database yang ingin digunakan. Misalkan kita ingin sewaktu proses koneksi dengan MySQL, langsung memilih database "universitas", maka contoh penulisannya adalah sebagai berikut:
<?php $link = mysqli_connect("localhost", "root", "qwerty","universitas"); ?>
Cara Menutup Koneksi Dengan Fungsi mysqli_close()
Walaupun PHP akan menutup koneksi dengan MySQL pada saat halaman selesai diproses, kita bisa menutupnya secara manual menggunakan fungsi mysqli_close(). Fungsi ini membutuhkan 1 argumen, yakni variabel resources hasil pemanggilan fungsi mysqli_connect().
Berikut contoh penggunaan fungsi mysqli_close():
<?php // buat koneksi dengan MySQL $link = mysqli_connect("localhost", "root", "qwerty","universitas"); //.... proses PHP //.... proses PHP //.... proses PHP // tutup koneksi mysqli_close($link); ?>
Cara Menjalankan Query MySQL Dengan Fungsi mysqli_query()
Cara menjalankan query MySQL dengan mysqli extension juga mirip dengan mysql extension. Di dalam mysqli, kita menggunakan fungsi mysqli_query(). Namun berbeda dengan fungsi mysql_query() yang meletakkan variabel resources hasil mysql_connect() sebagai argumen kedua dan bersifat opsional, di dalam fungsi mysqli_query(), variabel ini diletakkan sebagai argumen pertama dan harus ditulis.
Sebagai contoh, dengan menggunakan mysql_extension, kita biasa menulis kode PHP sebagai berikut:
<?php //buat koneksi dengan MySQL $link=mysql_connect('localhost','root',''); //gunakan database universitas $result=mysql_query('USE universitas',$link); //tampilkan tabel mahasiswa_ilkom $result=mysql_query('SELECT * FROM mahasiswa_ilkom',$link); ?>
Sedangkan dengan menggunakan mysqli extension, berikut adalah perubahan cara penggunaannya:
<?php // buat koneksi dengan MySQL, gunakan database: universitas $link = mysqli_connect("localhost", "root", "", "universitas"); // jalankan query $result = mysqli_query($link, "SELECT * FROM mahasiswa_ilkom"); ?>
Perhatikan bahwa kita menggunakan format: mysqli_query($link, "query_MySQL") untuk menjalankan query MySQL.
Cara Menampilkan Data MySQL Dengan mysqli
Untuk menampilkan hasil query MySQL, mysqli extension memiliki banyak fungsi. Kali ini kita akan membahas 3 fungsi yang paling sering digunakan:Â mysqli_fetch_row(), mysqli_fetch_array(), dan mysqli_fetch_object().
Ketiga fungsi ini hampir sama cara penggunaannya dengan versi mysql extension yang telah kita bahas, yakni: mysql_fetch_row(), mysql_fetch_array(), dan mysql_fetch_object(). Jika anda perhatikan, perbedaan namanya hanya dengan menambah huruf "i".
Langsung saja kita masuk ke contoh program, untuk memahami cara penggunaan ketiga fungsi ini. Di dalam contoh-contoh berikut saya menggunakan tabel mahasiswa_ilkom di dalam database universitas. Tabel ini kita buat sewaktu membahas tentang fungsi mysql_fetch_row.
Pertama, mari kita lihat cara menampilkan data MySQL dengan fungsi mysqli_fetch_row():
<?php // buat koneksi dengan MySQL, gunakan database: universitas $link = mysqli_connect("localhost", "root", "", "universitas"); // jalankan query $result = mysqli_query($link, "SELECT * FROM mahasiswa_ilkom"); // tampilkan query while ($row=mysqli_fetch_row($result)) { Â Â echo "$row[0] $row[1] $row[2] $row[3] $row[4]"; Â Â echo "<br />"; } ?>
Fungsi mysqli_fetch_row() sama persis cara penggunaanya dengan fungsi mysql_fetch_row(), oleh karena itu saya tidak akan membahasnya lagi. Tapi jika anda ragu, bisa mengunjungi tutorialnya di Cara Menampilkan Tabel MySQL dari PHP dengan fungsi mysql_fetch_row.
Berikutnya, kita bahas cara menampilkan data MySQL dengan fungsi mysqli_fetch_array():
<?php // buat koneksi dengan MySQL, gunakan database: universitas $link = mysqli_connect("localhost", "root", "", "universitas"); // jalankan query $result = mysqli_query($link, "SELECT * FROM mahasiswa_ilkom"); // tampilkan query while ($row=mysqli_fetch_array($result,MYSQLI_ASSOC)) { Â Â echo $row['nim']." ".$row['nama']." ".$row['umur']." "; Â Â echo $row['tempat_lahir']." ".$row['IPK']; Â Â echo "<br />"; } ?>
Sedikit perbedaan antara fungsi mysqli_fetch_array() dengan fungsi "kembarannya" mysql_fetch_array(), kali ini string penentu metoda array berada pada argumen kedua. Argumen pertama adalah variabel resources hasil pemanggilan fungsi mysqli_query(). String MYSQLI_ASSOC digunakan agar key array dapat diakses dengan nama. String lain yang bisa kita gunakan adalah MYSQL_NUM dan MYSQL_BOTH. Perbedaan ketiganya telah kita bahas lengkap dalam Tutorial PHP MySQL: Cara Menampilkan Tabel MySQL dari PHP dengan mysql_fetch_array.
Cara ketiga yang akan kita bahas adalah dengan menggunakan fungsi mysqli_fetch_object(). Fungsi ini sama dengan fungsi mysql_fetch_object(), dimana kita mengakses hasil query sebagai objek. Berikut adalah contoh kode PHPnya:
<?php // buat koneksi dengan MySQL, gunakan database: universitas $link = mysqli_connect("localhost", "root", "", "universitas"); // jalankan query $result = mysqli_query($link, "SELECT * FROM mahasiswa_ilkom"); // tampilkan query while ($row=mysqli_fetch_object($result)) { Â Â echo $row->nim." ".$row->nama." ".$row->umur." "; Â Â echo $row->tempat_lahir." ".$row->IPK; Â Â echo "<br />"; } ?>
Jika anda butuh penjelasan mengenai cara penggunaan mysqli_fetch_object(), silahkan kunjungi Tutorial PHP MySQL : Cara Menampilkan Tabel dengan objek (mysql_fetch_object).
Dalam tutorial PHP MySQL kali ini kita telah membahas tentang cara penggunaan mysqli untuk menampilkan data dari database MySQL.
Seperti yang pernah kita bahas, mysqli memiliki 2 cara penulisan (2 jenis style). Selain dengan cara procedural seperti dalam tutorial ini, di dalam tutorial selanjutnya kita akan membahas cara penggunaan mysqli dengan object oriented style.
Di tunggu artikel lanjutan nya,
Maju terus https://www.duniailkom.com
Artikel lanjutannya segera rilis gan :) Terimakasih atas kunjungannya..
Baik sekali tutorialnya… :) gan
Penggunaan class, object, property, methode (codeigniter) bisa dibuatkan sedikit contoh seperti diatas gan?. Pokok pertanyaan saya bagaimana codeigniter dapat memperingkas pekerjaan di pHP karena tutorial sebelumnya concept duniailkom.com sudah saya mengerti dengan beberapa analoginya.
Trims. Semoga terus maju
Untuk tutorial CodeIgniternya ditunggu saja y gan… :)
Saya mau tanya gan,
jika saya mau masukkan ke sebuah server online contoh niagaserver.com $servername = "localhost"; localhost turut diubah juga tidak misalnya menjadi $servername="niagahost";
trims
Yup, benar gan.
Argumen pertama dari fungsi mysqli_connect() adalah alamat komputer tempat MySQL server berada. Jika servernya ada di komputer lain, bisa diisi dengan alamat IP komputer tersebut atau alamat domainnya, tergantung dengan settingan web hosting yang digunakan…
Mas mau tanya.
Saya buat koneksi dari PHP -> MYQL menggunakan mysqli extension. dan pas saya coba jalankan, malah menampilkan pesan "Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\mahasiswa\koneksi\koneksi.php on line 4".
Kalau dilihat dari pesan errornya, kemungkinan besar query yang dijalankan salah atau hasilnya kosong. Bisa diperiksa lagi atau coba jalankan query tersebut secara manual terlebih dahulu (misalnya dari phpmyadmin).
Thanks gan atas infonya
<?php
include ('koneksi.php');
$poli = $_GET['poli'];
if($poli!=""){
$kode = "SELECT * FROM dokter WHERE id_dokter = $poli";
$result = mysqli_query ($koneksi,$kode);
echo "<select>";
while ($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) {
echo "<option>"; echo $row["nama"]; echo "</option>";
}
echo "</select>";
}
?>
Ini hasilnya error Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in
kira2 bagian mana yg salah ya?
Bisa dicek kembali apakah query MySQLnya sudah benar atau belum. Caranya bisa di echo isi $kode.
Tutorial yang sangat jelas dan sangat membantu
while($user_data = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>".$user_data['nama']."</td>";
echo "<td>".$user_data['kode']."</td>";
echo "<td>".$user_data['satuan']."</td>";
echo "<td>".$user_data['harga']."</td>";
echo "<td><a href='edit.php?id=$user_data[id]'>Edit</a> | <a href='delete.php?id=$user_data[id]'>Delete</a></td></tr>";
}
error Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in
bantu gan
Jika errornya seperti itu, besar kemungkinan perintah query MySQL yang ditulis salah / error.
apakah benar penggunaan mysqli ini cocok?
$jumlah = mysqli_num_rows($cekuser);
$hasil = mysqli_fetch_array($cekuser);
kalau benar tolong dijelaskan kegunaannya karena saya hanya copy paste saja
Masih ada yang kurang…
Untuk fungsi mysqli, argument pertama fungsi harus berupa variabel yang menampung koneksi. Penjelasan lebih lengkap bisa dibaca2 lagi tutorial di web duniailkom ini. Sudah saya bahas lengkap tentang cara penggunaan fungsi mysqli_num_rows() dan mysqli_fetch_array().
Om. Tapi katanya kalo kita nampilkan data dari databse menggunakan mysql_fetch_array atau assoc itu bahaya. Bisa kena sql injection. Kira kira bisa gk bikin artikel nya pakai cara lain. Yang pernah ku lihat di youtube itu dia pakai sqli_stmt_prepare() dll. tapi karna kontent luar aku jadi kurang paham. kalau sekiranya admin bisa buatkan artikel nya saya akan sangat berterimakasih
Setahu saya tidak pengaruh penggunaan mysql_fetch_array atau mysql_fetch_assoc, karena itu hanya untuk menampilkan data yang sudah ada di database. SQL Injection terjadi pada saat proses input, yakni perintah yang ditulis dalam fungsi mysql_query().
Salah satu solusinya dengan melewatkan semua query ke dalam fungsi mysql_real_escape_string(), tapi memang yang disarankan pakai prepared statement seperti mysqli_prepare(). Tutorial singkatnya bisa kesini: https://www.duniailkom.com/tutorial-php-mysql-pengertian-dan-cara-penggunaan-prepared-statements-mysqli/
web yang luar biasa, saya sangat terbantu dan terima kasih.
izin bertanya,
jadi gini gan…
ane membuat koneksi pake mysqli object oriented style nah untuk penutup koneksinya saya gunakan procedural style apakah koneksi tersebut berhasil tertutup ?
contoh :
//buat koneksi database
$conn = new mysqli('localhost','root',",'db_abc');
//tutup koneksi database
mysqli_close($conn);