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咨询