Mengatasi Error mysqli_fetch_array() expects parameter 1 to be mysqli_result pada PHP

Mengatasi Error mysqli_fetch_array()

Mengatasi Error mysqli_fetch_array() expects parameter 1 to be mysqli_result pada PHP. Mungkin beberapa dari teman-teman sedang kesulitan dan mendapatkan error ini ketika melakukan menggunakan method mysqli_fetch_array pada PHP. Namun bagi teman-teman yang belum mengetahui tentang perbedaan mysql dan mysqli pada PHP bisa melihat penjelasannya disini.

Pertama, kita pahami dulu apa maksud dari error tersebut. Error tersebut muncul ketika parameter yang kita masukkan dalam method tersebut bukanlah result/hasil dari query mysqli.

“Loh, padahal variable nya bener kok dari query?”

Sebentar, untuk error ini emang agak tricky dan harus jeli biar root cause (akar masalah) nya bisa kelar beneran. Sekarang, coba perhatikan kode dibawah :

$query = mysqli_query($connection, "SELECT nama, umur FROM dataPengguna WHERE id_pengguna = " . $id);

$data = mysqli_fetch_array($query);

var_dump($data);

Jika kita melihat struktur dari penggunaan method mysqli_query, jelas tidak ada yang salah. mysqli_query membutuhkan dua parameter yakni koneksi yang diwakili oleh variable $connection dan querynya. Sehingga seharusnya variable $query benar berisi hasil dari mysqli_result( ) dan tidak mengeluarkan error seperti judul artikel ini.

Mengatasi Error mysqli_fetch_array()

Ada dua kemungkinan error yang akan terjadi. Error koneksinya ($connection) atau error pada querynya. Error pada koneksi akan mengeluarkan error yang berbeda, sehingga bisa kita simpulkan bahwa hampir pasti error kita terjadi pada querynya.

Lalu bagaimana cara mengatasinya?

Yang pertama, cek nama field(kolom) yang digunakan pada query tersebut. Pada contoh diatas yakni ‘nama’ dan ‘umur’. Cek ke database, pastikan field tersebut benar dan ada di table database kita. Kesalahan yang banyak terjadi yakni terjadi typo pada nama field. Juga jangan lupa cek nama field yang menjadi syarat kondisi (WHERE) pada query. Pada contoh diatas field ‘id_pengguna’.

Kedua, cek nama table yang kita masukkan ke query. Pastikan nama tablenya benar. Mirip dengan yang pertama, banyak kesalahan terjadi karena typo saat menuliskan nama table.

Terakhir, perhatikan penggunaan tanda petik, baik tanda petik satu ( ‘ ) maupun tanda petik dua ( ” ). Seringkali ada tanda petik didalam query tersebut dan tidak terdeteksi kesalahan di editor karena dianggap benar terbaca sebagai string. Serta jangan lupa perhatikan format query yang kita tuliskan. Khususnya jika query kita sudah mulai kompleks (menggunakan JOIN table misalnya.)

Sekian artikel singkat kali ini, semoga bisa membantu teman-teman yang mendapatkan error serupa. Jika ingin belajar mengenai database PHP dan mysqli procedural lebih lanjut bisa mengunjungi halaman ini

You May Also Like

Leave a Reply

Your email address will not be published. Required fields are marked *