Problem:
Sie versuchen, Bilder in zu speichern eine MySQL-Datenbank, aber das Programm fügt die Bilddaten nicht ein.
Auszug aus bereitgestellt Code:
$file = $_FILES['image']['tmp_name']; ... if ($image_query = mysql_query ("insert into product_images values (1,'$image_name',$image )")) { ... }
Fehlermeldung:
Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, auf die richtige Syntax.
Lösung:
1. Stellen Sie sicher, dass die Bildspalte vom BLOB-Typ ist:
Stellen Sie sicher, dass die Spalte, die Sie zum Speichern der Bilder verwenden, vom BLOB-Datentyp ist.
2. Bereinigen Sie die Eingabedaten:
Verwenden Sie MySQLi-Funktionen, um SQL-Abfragen zu verarbeiten und Sonderzeichen in den Eingabedaten zu maskieren, um SQL-Injection zu verhindern.
Korrigierter Code (unter der Annahme, dass die ID immer „1“ ist) ):
$image = addslashes(file_get_contents($_FILES['image']['tmp_name'])); $image_name = addslashes($_FILES['image']['name']); $query = "INSERT INTO product_images (id, image, image_name) VALUES ('1', '{$image}', '{$image_name}')"; if (mysqli_query($conn, $query)) { ... }
3. HTML-Formular aktualisieren:
Das HTML-Formular sollte aktualisiert werden, um das richtige Enctype-Attribut zum Hochladen von Dateien zu verwenden:
<form action="insert_product.php" method="POST" enctype="multipart/form-data"> <input type="file" name="image" /> <input type="submit" /> </form>
4. Speichern Sie Dateien auf der Festplatte (optional):
Erwägen Sie, Bilddateien auf der Festplatte zu speichern, anstatt für große Datenmengen eine MySQL-Datenbank zu verwenden. Dies kann die Leistung verbessern und die Datenbanklast reduzieren.
Das obige ist der detaillierte Inhalt vonWie füge ich Bilder mit PHP richtig in eine MySQL-Datenbank ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!