„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > 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?

Veröffentlicht am 16.01.2025
Durchsuche:501

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. Ein Ausschnitt des Codes finden Sie unten:

$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ärdaten aufzunehmen.
  • MySQL-Funktion Verwendung: 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 dies auch tun Halten Sie sich an das folgende Format:
  • Image Escaping: Stellen Sie beim Umgang mit Bilddaten als BLOBs sicher, dass diese mithilfe von mysql_real_escape_string() maskiert werden, um Syntaxfehler zu vermeiden.

Überarbeiteter Code

Der folgende Code enthält das Notwendige behebt:

$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.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3