[英]ODBC SQL update Statement issue if more than 32,000 characters
這是問題所在:我有一個巨大的 xml 數據字符串存儲在表的(BLOB)字段中。 它有時會保存一些 70k 個字符或更多字符的字符串。 我使用 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);
謝謝您的幫助...
更新:這是連接到一個跨庫數據庫,而不是 MS SQL。 此外,我嘗試使用不同的 ODBC 驅動程序,並得到相同的消息,但字符容差稍高:42000 而不是 37000。
請幫忙....
您是否嘗試過將數據作為參數傳遞?
例如:
$sql = UPDATE EHR_VISITS SET RECORD=? WHERE EHR_VISITS_ID='1396';
$stmt = odbc_prepare($conn, $sql);
$rs = odbc_execute($stmt, $tempFileXML);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.