0
这是问题:我在表中的(BLOB)字段中存储了一个巨大的xml数据字符串。它有时包含一些字符串70k或更多。我使用ODBC_Connection将其拉出。如果超过32,000个字符,ODBC SQL更新声明问题
我可以导入(没问题)。
我可以操纵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
请帮助....
我有同样的结果尝试这一点。非常感谢您的帮助。我已经发布了一些我已经尝试过的其他信息。我仍然卡住。 –
你还试过使用PHP的ibase扩展吗?请参阅:http://www.php.net/manual/en/book.ibase.php –
感谢凯文。你的原始建议是正确的。我已经发布了基于你的提示的答案。太感谢了! –