Mysql
 sql >> Datenbank >  >> RDS >> Mysql

BLOb:kann nicht alle Daten lesen, aber wenige kb

Dein Programm ist richtig. Wenn die Dateigröße klein ist, funktioniert es gut. Wenn Sie BLOB verwenden Datentyp zum Speichern dieser Binärdaten, ändern Sie ihn in LONGBLOB . Denn wenn Sie versucht haben, eine Datei in BLOB zu speichern Datenfeld, und wenn die Dateigröße die maximal zulässige Größe des BLOB-Datentyps überschreitet, wird der Inhalt abgeschnitten und Sie verlieren einen Teil des Dateiinhalts (abhängig von der Dateigröße). Auch wenn Sie LONGBLOB verwenden Datentyp gibt es einige Dinge, die Sie überprüfen müssen. Ich erkläre es

Auf der mysql-Website können wir diese maximale Dateigröße von LONGBLOB sehen ist 4GB. Aber es hängt von vielen Dingen ab. Um große Dateien zu speichern, müssen Sie einige Dinge überprüfen. Das erste ist in my.ini Datei gibt es eine Eigenschaft namens max_allowed_packet , gibt es das größtmögliche Paket an, das zu oder von einem MySQL-Client oder -Server übertragen werden kann. Sie sollten max_allowed_packet festlegen Eigentum zu einem höheren Wert. Und starten Sie mysql neu. Einige Dateisysteme lassen keine 4-GB-Dateien zu. In diesem Fall können Sie keine so große Datei laden.

Ich denke in Ihrem Fall die Einstellung max_allowed_packet Eigenschaft auf einen höheren Wert wird das Problem beheben.

Ich denke, Sie können das folgende Tabellenerstellungsskript

verwenden
CREATE TABLE `image` (
    `id` INT(10) NULL DEFAULT NULL,
    `fs` LONGBLOB NULL,
    `filen` VARCHAR(50) NULL DEFAULT NULL
)