Heim > Backend-Entwicklung > PHP-Tutorial > Wie füge ich Bild-Blobs mit PHP sicher in MySQL-Datenbanken ein?

Wie füge ich Bild-Blobs mit PHP sicher in MySQL-Datenbanken ein?

DDD
Freigeben: 2024-12-05 15:07:12
Original
781 Leute haben es durchsucht

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

Einfügen von Blobs in MySQL-Datenbanken mit PHP

Problem

Das Einfügen von Bildern in eine MySQL-Datenbank mit PHP kann schwierig sein. Ein häufiger Fehler besteht darin, die Binärdaten direkt mit file_get_contents() einzubetten. Dies führt dazu, dass anstelle der tatsächlichen Bilddaten eine Zeichenfolge gespeichert wird, die den Funktionsaufruf darstellt.

Lösung 1: Variablenverkettung

Um die Bilddaten ordnungsgemäß einzufügen, müssen Sie das Ergebnis von verketten file_get_contents(). Dies kann durch Springen aus der Zeichenfolge und explizites Anhängen des Werts erfolgen:

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

Lösung 2: Bereinigung

Binärdaten können Sonderzeichen enthalten, die die SQL-Abfrage ungültig machen können. Um dies zu verhindern, maskieren Sie die Daten mit mysql_escape_string():

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

Lösung 3: Separater Speicher

Das Speichern großer Bilder in einer Datenbank kann zu Leistungsproblemen führen. Ziehen Sie in Betracht, ein separates Dateispeichersystem wie Amazon S3 oder ein Dateisystem zu verwenden und stattdessen den Bildpfad oder die Referenz in der Datenbank zu speichern.

Das obige ist der detaillierte Inhalt vonWie füge ich Bild-Blobs mit PHP sicher in MySQL-Datenbanken ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage