sha1
PHP fungsi mengembalikan representasi string dari angka heksadesimal.
Artinya, jika Anda mencetaknya ke layar, itu akan menampilkan angka heksagonal. Namun dalam ingatan, itu adalah sekumpulan karakter ASCII.
Jadi, ambil angka hex 1A2F
. Sebagai ASCII dalam memori yang akan menjadi 0x31413246
, alih-alih 0x1A2F
Antarmuka normal MySQL mengirimkan semua argumen sebagai string. Saat menggunakan antarmuka normal, MySQL akan mengubah string ASCII menjadi nilai biner.
Metode pernyataan baru yang disiapkan mengirimkan semuanya sebagai biner. Jadi nilai bagus Anda dari "1A2F" sekarang akan dikirim sebagai 0x31413246 dan dimasukkan ke dalam kolom. - sumber:dev.mysql.com - Pernyataan yang disiapkan
Alih-alih, ubah string Hex Anda dengan mengemasnya menjadi string biner menggunakan:
$binId = pack("H*", $id); // this string is not ASCII, don't print it to the screen! That will be ugly.
lalu berikan $binId
ke pernyataan yang disiapkan MySQLi alih-alih $id.