Php 数据库可以';不要保存大量内容
我有一张桌子Php 数据库可以';不要保存大量内容,php,mysql,database,laravel,Php,Mysql,Database,Laravel,我有一张桌子post: field | type --------------------------------- id | int A_I P_K title | varchar(300) content | text 字段类型 --------------------------------- id | int A|I P|K 标题| varchar(300) 内容|文本 当我插入内容超过15k个单词的行时,我的数据库只保存了1
post
:
field | type
---------------------------------
id | int A_I P_K
title | varchar(300)
content | text
字段类型
---------------------------------
id | int A|I P|K
标题| varchar(300)
内容|文本
当我插入内容超过15k个单词的行时,我的数据库只保存了10k个单词,我丢失了5k个单词
我怎样才能解决这个问题
我使用的是MySQL和PHP frameworkLaravel 5.1如果您阅读-或任何其他数据类型,您可以找到每种类型的限制
例如,TEXT
的具体限制约为65K,但此限制可以根据字符编码(例如UTF-8或其他多字节编码)降低,因为它是以字节计算的,而不是以字符计算的
最大长度为65535(216)的文本列− 1) 人物。如果值包含多字节字符,则有效最大长度较小。每个文本值都使用2字节长度前缀存储,该前缀指示值中的字节数
可为该类型提供可选长度M。如果这样做了,MySQL将创建一个最小的文本类型,该文本类型足够大,可以容纳M个字符长的值
因此,如果您的需求超过这些限制,您应该选择一种能够处理更大有效负载的类型,例如MEDIUMBLOB
和LONGBLOB
,它们可以分别处理16M和4G的数据。而不是type->TEXT
(65535个字符)
使用type->MEDIUMTEXT
(可包含1600万字符)数据库中存储的字段类型,在“微型”车间、实验室、“中型”工厂、“大型”工厂中为您提供空间
但要明智地选择,因为“空间”有时占用的资源远远超过所需。根据需要使用字段类型
Type | Maximum length
-----------+-------------------------------------
TINYTEXT | 255 (2^8 −1) bytes
TEXT | 65,535 (2^16−1) bytes = 64 KiB
MEDIUMTEXT | 16,777,215 (2^24−1) bytes = 16 MiB
LONGTEXT | 4,294,967,295 (2^32−1) bytes = 4 GiB
我想你可以在这里得到完美的解决方案。。这也是我真正讨厌MySQL的原因之一。并不是说它有限制,而是它默默地接受并截断数据。它应该无法进行插入以保持数据正常。如果保存JSON或文件数据,情况会变得更糟,因为现在保存的JSON或文件数据将因数据丢失而损坏。解释答案的代码将提高其价值。@zx485希望这有助于更好地理解,请向thx咨询