I have to insert a row using php's mysql improved library to a table in mysql that has its primary key of type VARBINARY. The contents of this field are a computed sha1 hash.
Ben sorgu mükemmel çalışıyor eski yol çalıştırın:
$mysqli->$query("INSERT INTO table (id, field1) VALUES (0x" . $id . ",'" . $field1 . "')");
But when I try to execute it as a prepared statement, I can't figure out how to do it. If I perform the equivalent action:
if($stmt = $mysqli->prepare("INSERT INTO table (id, field1) VALUES (?, ?)")) {
$stmt->bind_param('ss', "0x".$id, $field1);
//execute statement
}
Bu içeriği bu alan için çok büyük olduğunu söyleyerek bir istisna atar. Ve ben bir BLOB alan olarak eklemek için deneyin:
if($stmt = $mysqli->prepare("INSERT INTO table (id, field1) VALUES (?, ?)")) {
$stmt->bind_param('bs', $id, $field1);
//execute statement
}
Hiçbir hata, satır yerleştirilmezden verir, ancak tanımlayıcı alanı şimdi (boş, boş değil) boştur.
Ben sorgu ve giriş dizesi ve hazır deyimi bağlaması parametreler olarak diğer alanlarda birleştirilmiş id karıştırıp biliyorum, ama ben sadece bu eklemek ve belki de birilerini yardımcı olacak doğru yolu nedir bilmek istiyorum gelecek.