我最近從ODBC切換到SQLSRV以連接PHP的MS SQL 2008。存儲過程中的PRINT函數存在一個奇怪的問題。如果打印功能顯示超過700個字符,則返回「HTTP錯誤500.0 - 內部服務器錯誤」消息。SQLSRV打印功能問題
以下是我使用的工具列表:
- PHP 5.3.6
- MS SQL Server 2008的
- [PHP_MSSQL]延長= php_sqlsrv_53_nts.dll
- IE8(這個問題是其他瀏覽器以及Firefox,Chrome)
- Web服務器IIS
以下是代碼 PHP代碼:
<?php
$link = sqlsrv_connect('dbname\instance2008', array("UID"=>'UID',"PWD"=>'PWD', "Database"=>'Database_name',"CharacterSet" => "UTF-8", "MultipleActiveResultSets" => 0));
if(!$link) die(print_r(sqlsrv_errors(), true));
sqlsrv_configure('WarningsReturnAsErrors', 0);
$sql = "EXEC spa_i18n_test";
$result = sqlsrv_query($link, $sql);
if(!isset($result)){
error_reporting(2047);
}
while($row = sqlsrv_fetch_array($result)){
echo $row[0] . ": " . $row[1] . "<br />";
}
?>
SCRIPT存儲過程。
Create proc spa_i18n_test
AS
SET NOCOUNT ON
print '2222222222222111111111111111112dddddddddddddd2222222222
222111111111111111112dddddddddddddd2222222222222111111
111111111112dddddddddddddd222222222222211111111111111111
2dddddddddddddd222222222222211111111111111122222222222221
11111111111111112dddddddddddddd222222222222211111111111111
1112dddddddddddddd2222222222222111111111111111112dddddddddd
dddd2222222222222111111111111111112dddddddddddddd22222222222
221111111111111112222222222222111111111111111112dddddddddddd
dd2222222222222111111111111111112dddddddddddddd2222222222222
111111111111111112dddddddddddddd2222222222222111111111111111
112dddddddddddddd2222222222222111111111111111222222222222211
1111111111111112ddddddddd22222wwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwwww'
select '1' a, '2' b
我曾嘗試在http://support.microsoft.com/kb/269412給出的解決方案,但遺憾的是它沒有爲我工作。
請分享一些工作。