Heim >Datenbank >MySQL-Tutorial >Wie füge ich Bilder mit PHP richtig in eine MySQL-Datenbank ein?

Wie füge ich Bilder mit PHP richtig in eine MySQL-Datenbank ein?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-31 13:17:18909Durchsuche

How to Properly Insert Images into a MySQL Database Using PHP?

So fügen Sie Bilder mit PHP in eine MySQL-Datenbank ein

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!

Stellungnahme:
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