在我的代码中,我使用变量$content
.它是一个长度为 ~200000 的文本字符串。 在这种情况下,$session
无关紧要。如果我尝试插入以下数据,...
$c = mysql_real_escape_string($content);
mysql_query("
INSERT INTO data (time, session, key_, value_)
VALUES('".time()."', '".$session."', 'content', '".$c."')
");
。在数据库中生成一个新行,time
、session
、key_
和value_
被写入。但是当$content
的长度为 ~200000 时,插入的文本只是前 ~1300 个字符的片段。字段类型设置为 longtext
,排序规则utf8_bin
。
如果我选择$c = strlen(mysql_real_escape_string($content));
,关于"200000"的内容会写给value_
。无论如何都没有mysql_error。
那么为什么只插入了变量的"短"片段呢?
编辑:
为了避免这个问题,我使用 base64_encode()
对所有数据进行编码,查询完成了它的工作。
检查数据库中字段的类型,您使用什么类型?
尝试将字段类型设置为 TEXT
。