我正在创建一个用于发送私有消息的表单,并希望将文本区域的maxlength值设置为mysql数据库表中text字段的最大长度。一个类型文本字段可以存储多少个字符?
如果很多,我是否可以像使用varchar那样在数据库文本类型字段中指定长度?
在一个简单的文本字段中键入64K?痛苦…
@MarcB从不低估用户将大量垃圾粘贴到私有文本消息字段的能力。
这就是为什么你应该限制textfield的容量,并且总是验证你的输入…
湖的最大号码:dev.mysql.com http:/ / / / / refman DOC / storage-requirements.html 5.0
TINYBLOB, TINYTEXT L + 1 bytes, where L < 2^8 (255 Bytes)
BLOB, TEXT L + 2 bytes, where L < 2^16 (64 Kilobytes)
MEDIUMBLOB, MEDIUMTEXT L + 3 bytes, where L < 2^24 (16 Megabytes)
LONGBLOB, LONGTEXT L + 4 bytes, where L < 2^32 (4 Gigabytes)
L是在你的文本的字节数场。因此,最大数量的字符的文本是(216)使用单字节字符)。均值65 535 chars(使用单字节字符)。
UTF-8的编码的字节的字节(每个字符编码:使用消费可能超过1个字节的空间。为UTF-8的消费之间的空间是1到4字节的字符。
@fyr-这里,l+2字节意味着什么,其中l<2^16?你能再详细解释一下吗?另外,您可以告诉我在文本字段中可以存储多少个字符?拜托。。。。
@j.j.l是字符数,字符数必须小于2的16次方。2^16=65536。因此,您可以输入65535个字符,每个完全填充的字段使用65535个字节+3个字节=65 538个字节。
@谢谢你:)
编辑使数字更清晰。另外,请注意,afaik innodb将这些blob和文本的前768字节存储在行本身中,因此请注意行可以内联存储的限制。
请注意,大小限制以字节为单位。因此,