Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Berjaya Memasukkan Gumpalan (Imej) ke dalam MySQL menggunakan PHP?

Bagaimana untuk Berjaya Memasukkan Gumpalan (Imej) ke dalam MySQL menggunakan PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-28 01:24:09654semak imbas

How to Successfully Insert Blobs (Images) into MySQL using PHP?

Memasukkan Gumpalan ke dalam Pangkalan Data MySQL dengan PHP

Masalah:

Percubaan untuk menyimpan imej dalam pangkalan data MySQL, tetapi sisipan tidak berjaya. Jadual pangkalan data mempunyai dua lajur: ImageId (int) dan Image (longblob). Kod PHP menggunakan file_get_contents() untuk mendapatkan semula data imej dan memasukkannya ke dalam lajur Imej menggunakan pertanyaan SQL berikut:

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

Walau bagaimanapun, data imej tidak disimpan dalam pangkalan data.

Penyelesaian:

Isunya terletak pada cara kod PHP membina Pertanyaan SQL. Panggilan fungsi file_get_contents() disertakan dalam petikan tunggal dalam rentetan pertanyaan, yang bermaksud bahawa data imej sebenar tidak dimasukkan. Untuk menyelesaikan masalah ini, ciri interpolasi pembolehubah PHP harus digunakan:

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

Selain itu, untuk memastikan data binari tidak mengandungi sebarang aksara yang boleh memecahkan pertanyaan SQL, adalah disyorkan untuk membersihkan data menggunakan fungsi mysql_escape_string():

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

Tambahan Pertimbangan:

Menyimpan data binari yang besar dalam pangkalan data boleh membawa kepada isu prestasi. Pertimbangkan untuk menggunakan medium storan yang berasingan, seperti sistem fail atau perkhidmatan storan awan, untuk imej dan objek besar yang lain.

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

Kenyataan:
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