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
Freigeben: 2024-12-07 00:53:15
Original
452 Leute haben es durchsucht

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();
}
Nach dem Login kopieren

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>
Nach dem Login kopieren
  • 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! :("; 
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage