0

在我的代码中,我使用变量$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_$contentlongtextutf8_bin

如果我选择$c = strlen(mysql_real_escape_string($content));,将写入有关“200000”的内容value_。无论如何都没有mysql_error。

那么为什么只插入了我的变量的“短”片段?

编辑:

为了避免这个问题,我使用base64_encode(), 对所有数据进行编码,并且查询完成了它的工作。

4

2 回答 2

0

检查数据库中字段的类型,您使用的是什么类型?

于 2012-06-12T10:22:54.873 回答
0

Try to set field type to TEXT .

于 2012-06-12T10:24:52.847 回答