Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Memasukkan Gumpalan Imej dengan Selamat ke dalam Pangkalan Data MySQL menggunakan PHP?

Bagaimana untuk Memasukkan Gumpalan Imej dengan Selamat ke dalam Pangkalan Data MySQL menggunakan PHP?

DDD
Lepaskan: 2024-12-05 15:07:12
asal
781 orang telah melayarinya

How to Safely Insert Image Blobs into MySQL Databases using PHP?

Memasukkan Gumpalan ke dalam Pangkalan Data MySql dengan PHP

Isu

Memasukkan imej ke dalam pangkalan data MySQL menggunakan PHP boleh menjadi rumit. Satu kesilapan biasa ialah membenamkan data binari secara langsung menggunakan file_get_contents(). Melakukannya menyebabkan rentetan yang mewakili panggilan fungsi disimpan dan bukannya data imej sebenar.

Penyelesaian 1: Penggabungan Pembolehubah

Untuk memasukkan data imej dengan betul, anda perlu menggabungkan hasil daripada file_get_contents(). Ini boleh dilakukan dengan melompat keluar dari rentetan dan menambahkan nilai secara eksplisit:

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

Penyelesaian 2: Sanitasi

Data binari mungkin mengandungi aksara khas yang boleh membatalkan pertanyaan SQL. Untuk mengelakkan ini, elakkan data menggunakan mysql_escape_string():

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

Penyelesaian 3: Storan Asingkan

Menyimpan imej besar dalam pangkalan data boleh membawa kepada isu prestasi. Pertimbangkan untuk menggunakan sistem storan fail yang berasingan, seperti Amazon S3 atau sistem fail dan sebaliknya menyimpan laluan imej atau rujukan dalam pangkalan data.

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Gumpalan Imej dengan Selamat ke dalam Pangkalan Data 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan