我最近从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给出的解决方案,但遗憾的是它没有为我工作。
请分享一些工作。