Вот проблема: у меня есть одна гигантская строка данных xml, хранящаяся в поле (BLOB) в таблице. Он иногда содержит несколько строк 70 тыс. Символов. Я вытаскиваю его, используя ODBC_Connection.
Я могу импортировать (без проблем).
Я могу манипулировать XML и сохранять его как строку (без проблем).
Я могу сохранить строку обратно в поле mySQL (без проблем).
Проблема возникает, когда я пытаюсь сохранить ее обратно в исходное поле, из которого я его вытащил. Если я сохраню строку с количеством символов менее 32 000, мы будем золотыми. Если в строке есть больше, чем много символов, BAM. Я получаю это сообщение об ошибке.
( ! ) Warning: odbc_exec() [function.odbc-exec]: SQL error: [DataDirect][ODBC InterBase driver][InterBase]Dynamic SQL Error, SQL error code = -104, token size exceeds limit, SQL state 37000 in SQLExecDirect in ...\Test\index4.php on line 129 Call Stack # Time Memory Function Location 1 0.0011 482872 {main}( ) ..\index4.php:0 2 0.1260 1033760 odbc_exec ( ) ..\index4.php:129
Вот код PHP, который я использую на всякий случай:
// Now save it back to the system $conn=odbc_connect($DBNAME_O,$DBUSER_O,$DBPW_O); if (!$conn) {exit("Connection Failed: " . $conn);} echo $tempFileXML; $sql="UPDATE EHR_VISITS SET RECORD='$tempFileXML' WHERE EHR_VISITS_ID='1396'"; // echo $theData; $rs=odbc_exec($conn,$sql); odbc_close($conn);
Спасибо за помощь…
UPDATE: Это связано с базой данных interbase, а не с MS SQL. Кроме того, я попытался использовать другой драйвер ODBC и получил одно и то же сообщение, но с несколько более высоким переносом символов: 42000 вместо 37000.
Помоги пожалуйста….