Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich BLOBs (Bilder) mit PHP erfolgreich in MySQL einfügen?

Wie kann ich BLOBs (Bilder) mit PHP erfolgreich in MySQL einfügen?

Patricia Arquette
Freigeben: 2024-11-27 22:56:11
Original
339 Leute haben es durchsucht

How Can I Successfully Insert BLOBs (Images) into MySQL Using PHP?

Einfügen von BLOBs in MySQL-Datenbanken mit PHP: Ein Problem und Lösungen

Beim Versuch, Bilder in einer MySQL-Datenbank zu speichern, kann es bei einigen Benutzern zu einem Problem kommen, wo sich das Bild befindet nicht richtig eingesetzt. Diese Diskrepanz kann aufgrund eines Missverständnisses darüber entstehen, wie PHP Funktionsaufrufe innerhalb interpolierter Zeichenfolgen verarbeitet.

Problem

Im folgenden Code besteht die Absicht darin, die binären Bilddaten in der Datenbank zu speichern:

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

Dieser Ansatz erstellt jedoch eine Zeichenfolge, die „file_get_contents($tmp_image)“ enthält, und nicht das eigentliche Bild Daten.

Lösung 1: Explizite Verkettung

Um dieses Problem zu beheben, muss der Funktionsaufruf explizit innerhalb der Zeichenfolge verkettet werden:

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

Jetzt sind die Bilddaten korrekt in den String interpoliert, bevor die Abfrage ausgeführt wird.

Lösung 2: Escaping Special Zeichen

Die binären Bilddaten können Sonderzeichen wie einfache Anführungszeichen enthalten, die die SQL-Abfrage ungültig machen können. Um dies zu mildern, sollten die Daten vor der Interpolation maskiert werden:

$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: Überlegungen zur alternativen Speicherung

Es ist wichtig zu beachten, dass das Speichern großer Mengen an Bilddaten in einer Datenbank ineffizient sein kann . Ziehen Sie alternative Speicheroptionen in Betracht, z. B. das Speichern der Bildpfade in der Datenbank und der tatsächlichen Bilder in einem dedizierten Dateisystem oder Content Delivery Network (CDN).

Das obige ist der detaillierte Inhalt vonWie kann ich BLOBs (Bilder) mit PHP erfolgreich in MySQL einfügen?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage