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.
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!