Es gibt zwei Möglichkeiten, Bilder zu speichern. Am häufigsten wird der Dateiname in der MySQL-Tabelle gespeichert und das Bild im Ordner hochgeladen.Eine andere Möglichkeit besteht darin, das Bild direkt in der Datenbank zu speichern. Da Entwickler normalerweise nicht die zweite Methode verwenden, können sie verwirrt werden.

MySQL für Datenbankinformationen zu verwenden, ist zweifellos eine sehr gute Wahl. Manchmal ist es bequemer, das Bild oder die Datei in der Datenbank als in einem separaten Ordner zu speichern. In diesem Artikel erfahren Sie, wie Sie das Bild oder die Datei in der MySQL-Datenbank speichern und wie das Datenbankbild mit dem praktischen Beispiel angezeigt wird.

Das Speichern einer hochgeladenen Datei in einer Datenbank ist komplexer als das einfache Verschieben einer Datei mit move_uploaded_file . also werden wir heute prüfen, ob eine Datei in der Datenbank gespeichert ist.Die MySQL-Datenbank bietet einen speziellen Datentyp zum Speichern einer großen Datenmenge, und dieser Datentyp ist BLOB.

Was ist ein BLOB?

BLOB-Datentyp ist ein binäres großes Objekt, das eine variable Länge von Daten enthalten kann.Ein BLOB wird normalerweise zum Speichern von Binärdaten verwendet und hat vier Typen:‘

1. TINYBLOB
2. BLOB
3. MEDIUMBLOB
4. LONGBLOB

Der Hauptunterschied zwischen allen Typen ist die Länge der jeweiligen Daten gespeichert werden können.

Um eine Datei in der Datenbank oder in MySQL zu speichern, erstellen wir eine Tabelle mit dem Datentyp BLOB, in der die Datei mit der folgenden Anweisung gespeichert werden kann.Da BLOB für Binary Large Object steht und eine binärsichere Version des Texttyps ist, bedeutet dies, dass Daten kein lesbarer Text sind und nicht als lesbarer Text interpretiert werden, während streng binäre Daten gespeichert werden.

Hier speichere ich ein Bild in der Datenbank, anstatt die Datei nur vom temporären Speicherort in ein endgültiges Verzeichnis zu verschieben, damit Sie den Inhalt lesen und in die Datenbank einfügen können.

HINWEIS: Bei BLOB-Spalten wird zwischen Groß- und Kleinschreibung unterschieden, wenn Sie Daten darin speichern und dann versuchen, sie mit einer MySQL-Abfrage zu durchsuchen.

Beispiel:

Hier hat die Tabellenstruktur zwei Felder, das erste ist die primäre Autoincrement-ID und das zweite Feld ist Blob zum Speichern des Bildes.

1
2
3
4
5
6

Tabellendateien ERSTELLEN (
id INT AUTO_INCREMENT PRIMÄRSCHLÜSSEL,
file_data MEDIUMBLOB NOT NULL
);

Als nächstes benötigen Sie eine Weboberfläche zum Hochladen eines Bildes. Lassen Sie uns dazu ein HTML-Formular erstellen, mit dem der Benutzer eine Datei hochladen kann, die Sie in der Datenbank speichern möchten

1
2
3
4
5
6

< form name =“Datei“ Aktion =“filedb.php“ Methode =“post“ enctype =“multipart / formulardaten“>
< input type=“Datei“ name=“Datei“ Wert=““ />
< eingabetyp = „Senden“ name =“Hochladen“ Wert = „Hochladen“>
</ formular>

Erstellen Sie nach dem Formular filedb.PHP-Datei, die Ihnen den Hauptcode zum Speichern der Datei in der Datenbank anzeigt. Hier liest die Fread-Funktion den Datei- oder Bildinhalt und speichert den Inhalt mithilfe der MySQL-Abfrage in der MySQL-Datenbank.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

// Dies ist die Datei, die wir in die Datenbank einfügen werden
$MY_FILE = $_FILES;
// Um die Datei zu öffnen und ihren Inhalt in $file_contents
$file = fopen($MY_FILE, ‚r‘);
$ file_contents = fread ($Datei, Dateigröße ($MY_FILE));
fclose($ Datei);
/* Wir müssen einige stcharacters umgehen, die in file_contents erscheinen könnten, also tun Sie das jetzt, bevor wir mit der Abfrage beginnen.*/
$file_contents = addslashes($file_contents);
// So fügen Sie die Datei in die Datenbank ein
mysql_connect(‚localhost‘, ‚root‘, „) oder die(„Verbindung zur Datenbank kann nicht hergestellt werden.“);
mysql_select_db(‚test‘) or die(„Die Datenbank kann nicht ausgewählt werden.“);
mysql_query(„INSERT INTO files SET file_data=’$file_contents'“) oder die(„MySQL-Abfragefehler: “ . mysql_error() . „<br><br>“. „Die SQL war: $SQL<br><br>“);
mysql_close();
echo „Datei erfolgreich in Dateitabelle eingefügt.“;

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.