Heim > Backend-Entwicklung > PHP-Tutorial > Wie füge ich mit PHP erfolgreich Blobs (Bilder) in MySQL ein?

Wie füge ich mit PHP erfolgreich Blobs (Bilder) in MySQL ein?

Mary-Kate Olsen
Freigeben: 2024-11-28 01:24:09
Original
697 Leute haben es durchsucht

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

Einfügen von Blobs in MySQL-Datenbanken mit PHP

Problem:

Versuch, ein Bild in einer MySQL-Datenbank zu speichern, aber Die Einfügung ist nicht erfolgreich. Die Datenbanktabelle hat zwei Spalten: ImageId (int) und Image (longblob). Der PHP-Code ruft mit file_get_contents() die Bilddaten ab und fügt sie mithilfe der folgenden SQL-Abfrage in die Bildspalte ein:

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

Die Bilddaten werden jedoch nicht in der Datenbank gespeichert.

Lösung:

Das Problem liegt in der Art und Weise, wie der PHP-Code die SQL-Abfrage erstellt. Der Funktionsaufruf file_get_contents() ist in einfache Anführungszeichen in der Abfragezeichenfolge eingeschlossen, was bedeutet, dass die eigentlichen Bilddaten nicht eingefügt werden. Um dieses Problem zu beheben, sollte die Variableninterpolationsfunktion von PHP verwendet werden:

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

Um sicherzustellen, dass die Binärdaten keine Zeichen enthalten, die die SQL-Abfrage beschädigen könnten, wird außerdem empfohlen, die Daten mit zu bereinigen die Funktion mysql_escape_string():

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

Zusätzlich Überlegungen:

Das Speichern großer Binärdaten in Datenbanken kann zu Leistungsproblemen führen. Erwägen Sie die Verwendung eines separaten Speichermediums, z. B. eines Dateisystems oder eines Cloud-Speicherdienstes, für Bilder und andere große Objekte.

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