2010-11-27 10 views
15

Ich entwickle eine Datenbank-basierte Website für ein chinesisches Publikum in PHP. Der Inhalt wird in der Datenbank als longtext Feld gespeichert.Maximale Länge für Longtext-Feld

Ich frage mich, wie kann ich sicher sein, dass die zu speichernden Daten nicht abgeschnitten werden?

+4

Ich würde wirklich hoffen, dass Leute würden 4 GB im Wert von Daten über ein Textfeld in einem HTML-Formular nicht betreten. – David

Antwort

35

Es hängt von der Größe der Zeichen und einigen Konfigurationsoptionen ab.

LONG [CHARACTER SET charset_name] [Sortieren collation_name]

eine Textspalte mit einer maximalen Länge von 4,294,967,295 oder 4 GB (2^32-1) Zeichen. Die effektive maximale Länge ist geringer, wenn der Wert Multi-Byte-Zeichen enthält. Die effektive maximale Länge der LONGTEXT Spalten ist auch abhängig von der konfigurierten maximalen Paketgröße im Client/Server Protokoll und verfügbaren Speicher. Jeder LONGTEXT-Wert wird unter Verwendung eines Vier-Byte-Längenpräfix gespeichert, das die Anzahl der Bytes im Wert angibt.

http://dev.mysql.com/doc/refman/5.0/en/string-type-overview.html

+0

Kannst du erklären, warum es auch von der maximalen Paketgröße abhängt? – Matthias

+0

Ich denke, weil es abgeschnitten werden könnte, wenn Sie versuchen, etwas zu senden, das die maximale Paketgröße überschreitet, obwohl es in Longtext passen würde – Gigala