Heim > Datenbank > MySQL-Tutorial > Wie füge ich Bild-Blobs mit PHP ordnungsgemäß in MySQL ein?

Wie füge ich Bild-Blobs mit PHP ordnungsgemäß in MySQL ein?

Mary-Kate Olsen
Freigeben: 2024-12-26 15:53:09
Original
208 Leute haben es durchsucht

How to Properly Insert Image Blobs into MySQL Using PHP?

Einfügen von Blobs in MySQL-Datenbanken mit PHP

Wenn ein Bild in einer MySQL-Datenbank gespeichert werden muss, kann es zu Schwierigkeiten kommen. Hier ist die Tabellenstruktur:

mysql> describe ImageStore;
+---------+----------+------+-----+---------+-------+
| Field   | Type     | Null | Key | Default | Extra |
+---------+----------+------+-----+---------+-------+
| ImageId | int(11)  | NO   | PRI | NULL    |       |
| Image   | longblob | NO   |     | NULL    |       |
+---------+----------+------+-----+---------+-------+
2 rows in set (0.01 sec)
Nach dem Login kopieren

Die folgende Abfrage versucht, ein Bild einzufügen, speichert jedoch nicht die erwarteten Binärdaten:

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

Das Problem liegt in der Verkettung der Funktion Rufen Sie file_get_contents($tmp_image) innerhalb der Zeichenfolge auf. Die Variableninterpolation von PHP funktioniert nur für Variablen, nicht für Funktionsaufrufe. Hier sind drei Lösungen:

Lösung 1:Explizite Verkettung verwenden:

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

Lösung 2:Binärdaten für MySQL-Abfrage bereinigen:

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

Hinweis: Speichern Sie große Bilder lieber nicht in MySQL Datenbanken wenn möglich.

Das obige ist der detaillierte Inhalt vonWie füge ich Bild-Blobs mit PHP ordnungsgemäß 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