Apabila cuba menyimpan imej dalam pangkalan data MySQL, anda mungkin menghadapi masalah jika pertanyaan anda gagal memasukkan imej. Artikel ini akan memberikan penyelesaian kepada masalah ini.
Masalah:
Dalam pertanyaan berikut, file_get_contents($tmp_image) dianggap sebagai rentetan dan bukannya panggilan fungsi:
$sql = "INSERT INTO ImageStore(ImageId,Image) VALUES('$this->image_id','file_get_contents($tmp_image)')";
Penyelesaian 1:
Lompat keluar dari rentetan dan lakukan penggabungan eksplisit:
$sql = "INSERT INTO ImageStore(ImageId,Image) VALUES('$this->image_id','" . file_get_contents($tmp_image) . "')";
Penyelesaian 2:
Escape data binari untuk mengelakkan pertanyaan tidak sah:
$sql = "INSERT INTO ImageStore(ImageId,Image) VALUES('$this->image_id','" . mysql_escape_string(file_get_contents($tmp_image)) . "')";
Penyelesaian 3:
Meminimumkan saiz pangkalan data dengan menyimpan imej dalam sistem fail atau dengan menggunakan perkhidmatan storan awan.
Atas ialah kandungan terperinci Bagaimana untuk Menyimpan Imej (Blobs) dengan Betul dalam MySQL Menggunakan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!