php / mysql - 只有一个长文本的片段插入到DB中

时间:2012-06-12 10:16:59

标签: php mysql insert fragment longtext

在我的代码中,我使用变量$content。 它是一个长度约为200000的文本字符串。 $session在这种情况下无关紧要。 如果我尝试插入以下数据,...

$c = mysql_real_escape_string($content);

mysql_query("
  INSERT INTO data (time, session, key_, value_) 
  VALUES('".time()."', '".$session."', 'content', '".$c."')
");

...在数据库中生成一个新行,并写入timesessionkey_value_。 但是当$content的长度为~200000时,插入的文本只是前1300个字符的片段。 字段类型设置为longtext,排序规则为utf8_bin

如果我选择$c = strlen(mysql_real_escape_string($content));,则会向value_写入关于'200000'的内容。 在任何情况下都没有mysql_error。

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

修改

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

尝试将字段类型设置为TEXT