Salah Mengeset Parameter Prepared Statement Membuat PHP tidak bisa menyimpan ke Database


ROOT93 – Kadang ada beberapa jenis error yang memang sulit ditemukan meskipun sudah di cek seperti misalnya menggunakan perintah var_dump (); untuk mengetahui letak kesalahan . Ketika mendapati pesan undefined index, anda mungkin bisa langsung tahu penyebab masalahnya karena php secara langsung memberikan catatan letak kesalahan beserta baris – barisnya, atau ketika Anda mendapati pesan kesalahan mismatch atau mendapati pesan error column doesn’t match ketika mengecek errornya menggunakan perintah var_dump() mungkin Anda akan lebih mudah memhaminya, karena disana ditunjukan bagian mana yang mengalami kesalahan.


Hal ini akan berbeda ketika php hanya mengembalikan nilai false dari proses percobaan menyimpan data atau hanya menampilkan pesan kesalahan yang kita set sendiri seperti “Maaf data gagal disimpan”, ini mungkin dalam kasus tertentu akan menyulitkan karena php tidak bisa menampilkan pesan error secara jelas atau dimana posisi atau letak baris yang mengalami kesalahan

Baca juga : 


Dalam kasus ini saya hanya mendapati pesan atau php hanya mengambalikan nilai false saat diuji coba untuk menyimpan sebuah data ke database mysql menggunakan teknik prepared statement. Bahkan dicek menggunakan perintah var_dump() hanya menampilkan pesan yang saya tidak bisa mengerti secara jelas baris data mana yang bermasalah
 
Salah Mengeset Parameter Prepared Statement  Membuat PHP tidak bisa menyimpan ke Database


Bila mengalami case seperti ini, kita harus pandai – pandai dalam menyeleksinya, maksudnya dalam case ini kita perlu menebak – nebak dulu, misalnya : “Tidak mungkin ada baris data yang tidak terkirim dan tersimpan di variabel, kalau ada pasti akan ada pesan error semacam undefined index” atau “Kalau ada posisi data yang salah di set atau kurang di set pasti saat dicek errornya, akan terlihat bagian mana yang salah “ karena memang disini bukan jenis error karena kurang string, kurang titik atau tanda kurung yang memang biasanya akan lebih sensitif

Dalam case ini saya menemukan masalah dibagian set parameter bind_param, ketika menggunakan teknik prepared statement tentu kita akan mengeset data variabel tanpa nilai didalam bind param selanjutnya didalam set parameter akan diisi menggunakan nilai data yang dikirim atau tersimpan di variabel. 
Contoh
mysqli_stmt_bind_param($prepare, "sssss ",$parameter_data, dan seterusnya);
//set parameter memberikan nilai
$parameter_data=$data_nilai;

Jika dalam contoh case diatas saya mengeset atau membuat nama variabel yang salah saat memberikan nilai misalnya jadi $parameter_dati=$data_nilai; maka hasilnya php hanya akan mengembalikan nilai false tanpa memberikan pesan jelas dimana letak kesalahannya, sedangkan jika parameternya terbalik misal parameternya terbalik seperti $data_nilai=$parameter_data; maka php masih bisa menampilkan pesan error secara jelas, misalnya menampilkan pesan bahwa data kosong.
Nah jadi intinya perlu teliti dalam mengeset parameter, jangan sampai gara – gara kesalahan kecil seperti itu membuat kita kesusahan berhari – hari.
(Ahmad Zaelani / root93)

Related Posts :

4 Responses to "Salah Mengeset Parameter Prepared Statement Membuat PHP tidak bisa menyimpan ke Database"

  1. wah harus lebih hati hati ya gan agar tidak salah lagi dalam mengeset parameter prepared ini, makasih banyak gan buat infonya :)

    ReplyDelete
  2. Kang Ahmad apakah php ini juga berlaku pada html blogger? Karena belakangan saya agak kesulitan menyimpan perubahan, mungkin saya melakukan kesalahan yang sama.. Maklum nih kurang ngerti main kode-kodean makanya sering dibilang gak peka. Aish, malah kemana ini topiknya.

    ReplyDelete
    Replies
    1. wkwkw,,, jangan sampai salah memahami Kode mbak, nanti salah edit javascrip gak sinkron dan PHP eror gak jalan deh,,, :D :

      Delete
  3. gawat juga ya gan kalau akhirnya tidak bisa digunakan untuk menyimpan, sehingga perlu teliti sebelum menggunakannya ;)

    ReplyDelete

Silahkan untuk meninggalkan komentar, santai saja dan mulailah berkomentar...