将大文本放入php中的DB2表中

时间:2010-12-18 20:42:59

标签: php db2

我有一个包含Clob字段的表(IBM DB2中是否有其他任何数据类型用于存储文本?)。所以,我有一篇文章(html + css + text)。我使用htmlspecialchars($text)来准备文本。

然后我做下一件事:

$query="update tbl_lang_text set text='$text' where ownerid=$id and lang like '$lng'  and type=1";
$stmt = db2_prepare($this->conn, $query);
$result = db2_execute($stmt);

所以我收到了一个错误。类似的东西:查询太大了。所以。如何用如此大的文本更新我的字段?

P.S。:测试文章包含28 154个带空格的字符。

1 个答案:

答案 0 :(得分:1)

CLOB列最多可包含2 147 483 647个字符,因此不太可能导致错误。

什么可能是问题(即使不是你应该解决它),是你根本没有逃避输入。使用准备好的语句(即:db2_prepare)是好的,但您仍然需要使用参数和值来转义数据:

$query = "update tbl_lang_text set text=?".
         "where ownerid=? and lang like ? and type=1";
$stmt = db2_prepare($this->conn, $query);
$result = db2_execute($stmt, array($text, $id, $lng));

$text很可能至少包含一个撇号',并且您的查询因此而失败。