Heim >Backend-Entwicklung >PHP-Tutorial >Wie lade ich Bilder mit PHP ordnungsgemäß in eine MySQL-Datenbank hoch?

Wie lade ich Bilder mit PHP ordnungsgemäß in eine MySQL-Datenbank hoch?

Susan Sarandon
Susan SarandonOriginal
2024-12-09 16:49:14700Durchsuche

How to Properly Upload Images to a MySQL Database Using PHP?

Bilder mit PHP in eine MySQL-Datenbank hochladen

Das Einfügen von Bildern in eine MySQL-Datenbank mit PHP erfordert mehrere Schritte. Lassen Sie uns die Probleme im von Ihnen bereitgestellten Code beheben:

1. Struktur der Datenbanktabelle:

Stellen Sie sicher, dass Ihre Datenbanktabelle über eine Spalte verfügt, die als BLOB- oder MEDIUMBLOB-Typ definiert ist, um die Bilddaten zu speichern.

2. Vorbereitete Anweisungen:

Anstatt die veraltete Funktion mysql_query() zu verwenden, wechseln Sie zu vorbereiteten Anweisungen mit PDO oder MySQLi. Vorbereitete Anweisungen verhindern SQL-Injection-Schwachstellen.

3. Richtige Bildverarbeitung:

Der aktuelle Code ruft die Bilddaten direkt aus der temporären Datei ab. Dies ist ein Sicherheitsrisiko. Verwenden Sie stattdessen file_get_contents() mit der Option FILE_BINARY, um sicherzustellen, dass der Binärinhalt ordnungsgemäß verarbeitet wird.

4. Bereinigung:

Bereinigen Sie die Bilddaten mit addslashes() oder mysqli_real_escape_string(), um SQL-Injection zu verhindern.

5. Korrekte Einfügeabfrage:

Die Einfügeabfrage sollte mit der Tabellenstruktur übereinstimmen und die Daten entsprechend bereinigen. Hier ist eine korrigierte Version:

$stmt = $mysqli->prepare("INSERT INTO product_images (id, image, image_name) VALUES (?, ?, ?)");
$stmt->bind_param("sis", 1, $image, $image_name);
$image = file_get_contents($_FILES['image']['tmp_name'], FILE_BINARY);
$image_name = addslashes($_FILES['image']['name']);
if ($stmt->execute()) {
    echo "Image uploaded successfully";
} else {
    echo "Error: " . $mysqli->error;
}

6. HTML-Formular:

Das HTML-Formular sollte das Attribut enctype="multipart/form-data" verwenden, das die Übertragung von Binärdaten in der Anfrage ermöglicht. Verwenden Sie außerdem ein geeignetes schließendes Tag für das

Element.

<form action="insert_product.php" method="POST" enctype="multipart/form-data">
    <label>File:</label>
    <input type="file" name="image">
    <input type="submit">
</form>

Das obige ist der detaillierte Inhalt vonWie lade ich Bilder mit PHP ordnungsgemäß in eine MySQL-Datenbank hoch?. 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