在我的代码中,我使用变量$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
、和 。但是当长度为 ~200000 时,插入的文本只是前 ~1300 个字符的片段。字段类型设置为,排序规则为。key_
value_
$content
longtext
utf8_bin
如果我选择$c = strlen(mysql_real_escape_string($content));
,将写入有关“200000”的内容value_
。无论如何都没有mysql_error。
那么为什么只插入了我的变量的“短”片段?
编辑:
为了避免这个问题,我使用base64_encode()
, 对所有数据进行编码,并且查询完成了它的工作。