Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memasukkan Gumpalan Imej dengan betul ke dalam MySQL Menggunakan PHP?

Bagaimana untuk Memasukkan Gumpalan Imej dengan betul ke dalam MySQL Menggunakan PHP?

Mary-Kate Olsen
Lepaskan: 2024-12-26 15:53:09
asal
208 orang telah melayarinya

How to Properly Insert Image Blobs into MySQL Using PHP?

Memasukkan Gumpalan ke dalam Pangkalan Data MySQL dengan PHP

Apabila perlu menyimpan imej dalam pangkalan data MySQL, seseorang mungkin menghadapi kesukaran. Berikut ialah struktur jadual:

mysql> describe ImageStore;
+---------+----------+------+-----+---------+-------+
| Field   | Type     | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| ImageId | int(11)  | NO   | PRI | NULL    |       |
| Image   | longblob | NO   |     | NULL    |       |
+---------+----------+------+-----+---------+-------+
2 rows in set (0.01 sec)
Salin selepas log masuk

Pertanyaan berikut cuba memasukkan imej, tetapi gagal menyimpan data binari yang dijangkakan:

$tmp_img = $this->image['tmp_name'];
$sql = "INSERT INTO ImageStore(ImageId,Image)
VALUES('$this->image_id','file_get_contents($tmp_image)')";
mysql_query($sql); 
Salin selepas log masuk

Isunya terletak pada gabungan fungsi panggil file_get_contents($tmp_image) di dalam rentetan. Interpolasi pembolehubah PHP hanya berfungsi untuk pembolehubah, bukan panggilan fungsi. Berikut ialah tiga penyelesaian:

Penyelesaian 1: Gunakan penggabungan eksplisit:

$sql = "INSERT INTO ImageStore(ImageId,Image)
VALUES('$this->image_id','" . file_get_contents($tmp_image) . "')";
Salin selepas log masuk

Penyelesaian 2: Bersihkan data binari untuk pertanyaan MySQL:

$sql = "INSERT INTO ImageStore(ImageId,Image)
VALUES('$this->image_id','" . mysql_escape_string(file_get_contents($tmp_image)) . "')";
Salin selepas log masuk

Nota: Lebih suka tidak menyimpan imej besar dalam pangkalan data MySQL jika boleh.

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Gumpalan Imej dengan betul ke dalam MySQL Menggunakan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan