Поместите большой текст в таблицу DB2 в php - PullRequest
0 голосов
/ 18 декабря 2010

У меня есть таблица с полем Clob (есть ли другие типы данных в IBM DB2 для хранения текста в ней?). Итак, у меня есть статья (HTML + CSS + текст). Я использовал 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 Ответ

1 голос
/ 19 декабря 2010

Столбец 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 содержит хотя бы апостроф ' и что ваш запрос не выполняется из-за него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...