Heim >Backend-Entwicklung >PHP-Tutorial >Wie behebe ich das Problem, dass PHP-Bild-Uploads nicht in eine MySQL-Datenbank eingefügt werden können?

Wie behebe ich das Problem, dass PHP-Bild-Uploads nicht in eine MySQL-Datenbank eingefügt werden können?

DDD
DDDOriginal
2024-12-07 00:53:15463Durchsuche

How to Troubleshoot PHP Image Uploads Failing to Insert into a MySQL Database?

So laden Sie Bilder mit PHP-Code in eine MySQL-Datenbank hoch

Das Hochladen von Bildern in eine MySQL-Datenbank ist eine häufige Aufgabe bei der Entwicklung von Webanwendungen. Es ist jedoch wichtig, sicherzustellen, dass Ihr PHP-Code richtig konfiguriert ist, um Bilddaten effizient zu verarbeiten.

Problembeschreibung

Ein Entwickler hat Probleme mit seinem PHP-Code zielt darauf ab, Bilder in eine MySQL-Datenbank einzufügen. Der Code generiert keine Fehlermeldungen, fügt die Bilddaten jedoch nicht in die Datenbank ein. Nachfolgend finden Sie einen Ausschnitt des Codes:

$image = file_get_contents ($_FILES['image']['tmp_name']);
$image_name = $_FILES['image']['name'];
if ($image_query = mysql_query ("insert into product_images values (1,'$image_name',$image )"))
{
  echo $current_id;
 //echo 'Successfull';
}
else
{
  echo mysql_error();
}

Lösung

Bei der Analyse wurden die folgenden Probleme im Code identifiziert:

  • SQL-Tabellenkonfiguration: Stellen Sie sicher, dass die Spalte in der MySQL-Tabelle, die zum Speichern von Bildern vorgesehen ist, vom Typ BLOB ist, um Binärdateien aufzunehmen Daten.
  • MySQL-Funktionsverwendung: Moderner PHP-Code sollte PDO- oder MySQLi-Funktionen für Datenbankinteraktionen anstelle veralteter MySQL-Funktionen verwenden.
  • Formularstruktur: Das im Code-Snippet bereitgestellte HTML-Formular ist veraltet und sollte Folgendes einhalten Format:
<form action="insert_product.php" method="POST" enctype="multipart/form-data">
    <label>File: </label><input type="file" name="image" />
    <input type="submit" />
</form>
  • Image Escaping: Wenn Sie Bilddaten als BLOBs verarbeiten, stellen Sie sicher, dass sie mithilfe von mysql_real_escape_string() maskiert werden, um Syntaxfehler zu vermeiden.

Überarbeitet Code

Der folgende Code enthält die notwendigen Korrekturen:

$image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
$image_name = addslashes($_FILES['image']['name']);
$sql = "INSERT INTO `product_images` (`id`, `image`, `image_name`) VALUES ('1', '{$image}', '{$image_name}')";
if (!mysql_query($sql)) { // Error handling
    echo "Something went wrong! :("; 
}

Durch die Behebung dieser Probleme kann der PHP-Code Bilder erfolgreich in die MySQL-Datenbank hochladen. Aus Leistungs- und Skalierbarkeitsgründen wird außerdem empfohlen, Bilddateien auf der Festplatte statt in der Datenbank zu speichern.

Das obige ist der detaillierte Inhalt vonWie behebe ich das Problem, dass PHP-Bild-Uploads nicht in eine MySQL-Datenbank eingefügt werden können?. 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