Heim >Datenbank >MySQL-Tutorial >Wie kann ich mit PHP erfolgreich Bild-Blobs in eine MySQL-Datenbank einfügen?

Wie kann ich mit PHP erfolgreich Bild-Blobs in eine MySQL-Datenbank einfügen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-16 00:39:23936Durchsuche

How Can I Successfully Insert Image Blobs into a MySQL Database Using PHP?

Blobs in MySQL-Datenbanken mit PHP einfügen

Problemübersicht

Sie Ich versuche, ein Bild mit PHP in einer MySQL-Datenbank zu speichern, aber es funktioniert nicht so erwartet. Die Bilddaten werden nicht in die Datenbank eingefügt.

Lösung

Auf Probleme mit der Variableninterpolation prüfen

In In Ihrer Abfrage verwenden Sie die Funktion file_get_contents(), um die Bilddaten abzurufen, verketten deren Ergebnis jedoch nicht explizit mit der Abfragezeichenfolge. Infolgedessen enthält die Abfrage die Zeichenfolge „file_get_contents($tmp_image)“ anstelle der tatsächlichen Bilddaten.

Lösung 1: Explizite Verkettung

Um das Bild zu verketten Um die Daten richtig zu verarbeiten, müssen Sie aus der Zeichenfolge herausspringen und Dinge tun explizit:

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

Handle Sanitization

Wenn die binären Bilddaten Apostrophe (') enthalten, kann dies die SQL-Abfrage beschädigen. Um dies zu verhindern, sollten Sie die Daten zur Bereinigung über die Funktion mysql_escape_string ausführen:

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

Alternativen Speicher in Betracht ziehen

Speichern großer Binärdaten (z. B. Bilder) in MySQL-Datenbanken können sie sperrig machen. Erwägen Sie nach Möglichkeit die Verwendung eines separaten Dateispeichersystems für Bilder.

Das obige ist der detaillierte Inhalt vonWie kann ich mit PHP erfolgreich Bild-Blobs in eine MySQL-Datenbank einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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