Sie sind Ich versuche, ein Bild mit PHP in einer MySQL-Datenbank zu speichern, aber es funktioniert nicht wie erwartet. Die Bilddaten werden nicht in die Datenbank eingefügt.
Auf Probleme mit der Variableninterpolation prüfen
In Ihrem Bei einer 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 ordnungsgemäß zu erstellen, müssen Sie aus der Zeichenfolge herausspringen und die Dinge explizit ausführen:
$sql = "INSERT INTO ImageStore(ImageId,Image) VALUES('$this->image_id','" . file_get_contents($tmp_image) . "')";
Handle Sanitization
Wenn die binären Bilddaten enthalten Alle Apostrophe (') können die SQL-Abfrage unterbrechen. Um dies zu verhindern, sollten Sie die Daten über die Funktion mysql_escape_string ausführen sanitization:
$sql = "INSERT INTO ImageStore(ImageId,Image) VALUES('$this->image_id','" . mysql_escape_string(file_get_contents($tmp_image)) . "')";
Erwägen Sie alternativen Speicher
Speichern groß Binärdaten (z. B. Bilder) in MySQL-Datenbanken können diese umfangreich machen. Wenn möglich, sollten Sie die Verwendung eines separaten Dateispeichersystems in Betracht ziehen Bilder.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3