如何:禁用多个活动的结果集 (MARS)

下载 PHP 驱动程序

如果你需要连接到不启用多个活动的结果集 (MARS) 的 SQL Server 数据源,可以使用 MultipleActiveResultSets 连接选项禁用或启用 MARS。

过程

禁用 MARS 支持

  • 使用以下连接选项:

    'MultipleActiveResultSets'=>false  
    

    如果应用程序尝试在具有开放的活动结果集的连接上执行查询,第二次查询尝试将返回以下错误信息:

    连接无法处理此操作,因为存在具有挂起结果的语句。 若要使该连接可用于其他查询,请提取所有结果、取消或释放该语句。 有关 MultipleActiveResultSets 连接选项的详细信息,请参阅 Connection Options

SQLSRV 示例

以下示例显示如何使用 Microsoft Drivers for PHP for SQL Server的 SQLSRV 驱动程序禁用 MARS 支持。

<?php  
/* Connect to the local server using Windows Authentication and  
specify the AdventureWorks database as the database in use. */  
$serverName = "MyServer";  
$connectionInfo = array( "Database"=>"AdventureWorks", 'MultipleActiveResultSets'=> false);  
$conn = sqlsrv_connect( $serverName, $connectionInfo);  
if( $conn === false )  
{  
   echo "Could not connect.\n";  
   die( print_r( sqlsrv_errors(), true));  
}  
  
sqlsrv_close( $conn);  
?>  

PDO_SQLSRV 示例

以下示例显示如何使用 Microsoft Drivers for PHP for SQL Server 的 PDO_SQLSRV 驱动程序禁用 MARS 支持。

<?php  
// Connect to the local server using Windows Authentication and AdventureWorks database  
$serverName = "(local)";   
$database = "AdventureWorks";  
  
try {  
   $conn = new PDO(" sqlsrv:server=$serverName ; Database=$database ; MultipleActiveResultSets=false ", NULL, NULL);   
   $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );   
}  
  
catch( PDOException $e ) {  
   die( "Error connecting to SQL Server" );   
}  
  
$conn = null;   
?>  

另请参阅

连接到服务器