在我的代码中,我使用变量$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));
,则会向value_
写入关于'200000'的内容。
在任何情况下都没有mysql_error。
那么为什么只插入变量的“短”片段?
修改
为了避免这个问题,我使用了base64_encode()
来编码所有数据,并且查询完成了它的工作。
答案 0 :(得分:0)
检查数据库中字段的类型,您使用的是哪种类型?
答案 1 :(得分:0)
尝试将字段类型设置为TEXT
。