Php 如果超过32000个字符,则会出现ODBC SQL update语句问题

Php 如果超过32000个字符,则会出现ODBC SQL update语句问题,php,sql,string,odbc,sql-update,Php,Sql,String,Odbc,Sql Update,问题是:我有一个巨大的xml数据字符串存储在表的(BLOB)字段中。它有时包含一些70k或更多字符的字符串。我使用ODBC\u连接将其拔出 我可以导入(没问题)。 我可以操作XML并将其保存为字符串(没问题)。 我可以将字符串保存回mySQL字段(没问题) 当我试图将它保存回我从中提取它的原始字段时,问题就出现了。如果我保存少于32000个字符的字符串,我们将是金色的。如果字符串中的字符数超过该数目,则BAM。我收到了这个错误消息 ( ! ) Warning: odbc_exec() [func

问题是:我有一个巨大的xml数据字符串存储在表的(BLOB)字段中。它有时包含一些70k或更多字符的字符串。我使用ODBC\u连接将其拔出

我可以导入(没问题)。
我可以操作XML并将其保存为字符串(没问题)。
我可以将字符串保存回mySQL字段(没问题)

当我试图将它保存回我从中提取它的原始字段时,问题就出现了。如果我保存少于32000个字符的字符串,我们将是金色的。如果字符串中的字符数超过该数目,则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);  
谢谢你的帮助

更新:该数据库连接到interbase数据库,而不是MS SQL。另外,我尝试使用不同的ODBC驱动程序,得到了相同的消息,但字符容忍度略高:42000而不是37000


请帮忙

您是否尝试将数据作为参数传入

例如:


我也尝试过这个方法,结果也是一样的。非常感谢你的帮助。我已经在上面发布了一些我已经尝试过的附加信息。我还是被卡住了。你也试过使用PHPIBASE扩展吗?看:谢谢你,凯文。你最初的建议是正确的。我已经根据你的暗示发布了答案。万分感谢!
$sql = UPDATE EHR_VISITS SET RECORD=? WHERE EHR_VISITS_ID='1396'; 
$stmt = odbc_prepare($conn, $sql); 
$rs = odbc_execute($stmt, $tempFileXML);