Frage

Ich habe folgendes MySQL (Version 5.1) Tabelle (InnoDB):

Username varchar(50)  
Sequence int(11)  
FileType varchar(10)  
Photo longblob -- here
PhotoSize int(11)  
Timestamp datetime

Der Versuch, ein Byte einzufügen [] 96.7KB schlägt mit dem Fehler:

  

Daten zu lange Spalte 'Photo' in Zeile 1

Einfügen byte[] (Größe 37.2KB) funktioniert gut. Ich weiß nicht, was der Wendepunkt ist.

gegoogelt ich es und viele sagten, die Lösung es von BLOB in LONGBLOB zu ändern ist. Das hat nicht funktioniert. Andere sagten zu max_allowed_packet zu 16M zu wechseln (in der Datei my.ini) würde das Problem lösen. Das hat auch nicht funktioniert.

Kann mir jemand helfen?

War es hilfreich?

Lösung

Auch wenn sie „kann“, Datenbanken sind nicht auf Lager Binärdateien gemacht. Es ist effizienter in der Tabelle der Dateien auf dem Server den Pfad zu haben.

Andere Tipps

LONGBLOB

A BLOB-Säule mit einer maximalen Länge von 4 GB oder 4,294,967,295 (232-1) Bytes. Die effektive maximale Länge von LONGBLOB Spalten hängt von der maximalen Paketgröße in der Client / Server-Protokoll und die verfügbaren Speicher. Jeder LONGBLOB Wert wird gespeichert, um einen Vier-Byte-Länge-Präfix, der die Anzahl von Bytes in dem Wert anzeigt.

Sind Sie sicher, dass Sie die richtige Datei my.ini bearbeitet haben? Haben überprüfen Sie in der geladenen Konfigurationswerte? Wenn Sie phpMyAdmin unterwegs verwenden zu Register „Variablen“ und aktivieren Sie „max Paket“ Wert ist standardmäßig 16.777.216, Ihr sollte so etwas wie eine Milliarde Weise mehr sein

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top