2010-12-18 54 views
0

我有一个Clob字段的表(在IBM DB2中是否有任何其他数据类型来存储文本?)。所以,我有一篇文章(html + css + text)。我使用htmlspecialchars($text)来编写文本。将大文本放入DB2表中php

然后我做下一件事:

$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个带空格的字符。

+0

什么平台是你的DB2数据库? iSeries,Windows,Linux? – Codemwnci 2010-12-18 21:16:39

回答

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至少包含撇号'和您的查询失败因为它。

+0

谢谢。这样可行!!! – 2010-12-18 21:46:55