13 Juli 2025

bind_param bikin susah di php

 menulis baris-baris ini benar-benar bisa pusing 7 keliling.

$sql = "UPDATE riwayat_pemeriksaan SET edukasi = ? WHERE id = ?";

$params = ["si", $data['edukasi'], $data['id']];

call_user_func_array([$stmt, 'bind_param'], $this->refValues($params));


$params berisi string dan integer, jika data yang kita lewatkan salah type, maka mysqli akan otomatis melakukan casting(merubah type data) menjadi yang kita tentukan dalam $params ini. Kalau kita bikin database riwayat_pemeriksaan yang isinya id dan edukasi yang masing-masing bertype integer dan string, maka jika saat menulis program kita tanpa sengaja menuliskan 

$params = ["ii", $data['edukasi'], $data['id'];

padahal di tempat lain kita sudah mengisikan misalnya:

$data['edukasi'] = "rajin bergerak";

maka saat eksekusi sql, mysqli akan otomatis merubah data kita dari string ke integer, menyebabkan hilangnya data edukasi karena cast data dari string ke integer menyebabkan nilai yang dihasilkan menjadi 0, dan ini tanpa peringatan, maka pusinglah 7 keliling kalau belum pernah punya pengalaman ini.

sekedar logging pengalaman.

Tidak ada komentar:

Posting Komentar

Tanggap