2010-12-18 55 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