隐藏

sqlsrv_connect

发布:2014/7/8 23:54:48作者:管理员 来源:本站 浏览次数:1680

创建连接资源并打开一个连接。默认情况下将试图对该连接使用 Windows 身份验证。

sqlsrv_connect( string $serverName [, array $connectionInfo])

$serverName:一个字符串,它指定了要连接的服务器的名称。此字符串中可包含实例名称(例如,“myServer\instanceName”)或端口名称(例如,“myServer, 1521”)。有关此参数的可用选项的完整说明,请参阅 Using Connection String Keywords with SQL Native Client(将连接字符串关键字用于 SQL Native Client)中的“Server keyword in the ODBC Driver Connection String Keywords(ODBC 驱动程序连接字符串关键字中的服务器关键字)”部分。

$connectionInfo [可选]:一个关联 array,其中包含连接属性(例如,array("Database" => "AdventureWorks"))。下表描述了该数组所支持的键:

说明 默认值

APP

字符串

跟踪中使用的应用程序名称。

未设置任何值。

CharacterSet

字符串

指定用于将数据发送到服务器的字符集。此键是 SQL Server Driver for PHP 1.1 版中新增的。

有关详细信息,请参阅如何使用内置的 UTF-8 支持发送和检索 UTF-8 数据

SQLSRV_ENC_CHAR

ConnectionPooling

1 或 true,表示打开连接池。

0 或 false,表示关闭连接池。

指定从连接池中指定该连接(1 或 true)或不从连接池中指定该连接(0 或 false)。

true (1)

Database

字符串

指定所建立的连接使用的数据库的名称1

针对所使用的登录名的默认数据库。

Encrypt

1 或 true,表示启用加密。

0 或 false,表示关闭加密。

指定对与 SQL Server 之间的通信加密(1 或 true)还是不加密(0 或 false2

false (0)

Failover_Partner

字符串

指定在主服务器不可用时使用的数据库镜像(如果已启用并配置)的服务器和实例。

未设置任何值。

LoginTimeout

整数

指定在连接尝试失败之前等待的秒数。

没有超时。

MultipleActiveResultSets

1 或 true,表示使用多个活动结果集。

0 或 false,表示禁用多个活动结果集。

允许您禁用或显式启用对多个活动结果集 (MARS) 的支持。此键是 SQL Server Driver for PHP 1.1 版中新增的。

有关详细信息,请参阅如何禁用多个活动结果集 (MARS)

false (0)

PWD

字符串

指定与使用 SQL Server 身份验证进行连接时要使用的用户 ID 关联的密码3

未设置任何值。

QuotedId

1 或 true,表示使用 SQL-92 规则。

0 或 false,表示使用旧的规则。

指定将为带引号的标识符使用 SQL-92 规则(1 或true)或是使用旧的 Transact-SQL 规则(0 或false)。

true (1)

ReturnDatesAsStrings

1 或 true,表示以字符串的形式检索日期和时间类型。

0 或 false,表示以 PHP DateTime 类型的形式返回日期和时间类型。

您可以通过字符串或 PHP 类型的形式检索日期和时间类型(datetime、date、time、datetime2 和 datetimeoffset)。

有关详细信息,请参阅如何以字符串的形式检索日期和时间类型

false

TraceFile

字符串

用于跟踪数据的文件的路径。

未设置任何值。

TraceOn

1 或 true,表示启用跟踪。

0 或 false,表示禁用跟踪。

指定为所建立的连接启用 ODBC 跟踪(1 或 true)或禁用 ODBC 跟踪(0 或 false)。

false (0)

TransactionIsolation

SQLSRV_TXN_READ_UNCOMMITTED、

SQLSRV_TXN_READ_COMMITTED、

SQLSRV_TXN_REPEATABLE_READ、

SQLSRV_TXN_SNAPSHOT、

SQLSRV_TXN_SERIALIZABLE

指定事务隔离级别。

SQLSRV_TXN_READ_COMMITTED

TrustServerCertificate

1 或 true,表示信任证书。

0 或 false,表示不信任证书。

指定客户端应该信任(1 或 true)还是拒绝(0 或false)自签名服务器证书。

false (0)

UID

字符串

指定在使用 SQL Server 身份验证进行连接时要使用的用户 ID3

未设置任何值。

WSID

字符串

要跟踪的计算机的名称。

未设置任何值。

1. 在建立的连接上执行的所有查询都将针对由 Database 属性所指定的数据库进行。但是,如果用户具有相应权限,则可以使用完全限定的名称访问其他数据库中的数据。例如,如果通过 Database 连接属性设置了 master 数据库,则仍可使用完全限定的名称执行可访问 AdventureWorks.HumanResources.Employee 表的 Transact-SQL 查询。

2. 启用 Encryption 可能会影响某些应用程序的性能,这是因为加密数据需要计算开销。

3. 在使用 SQL Server 身份验证进行连接时必须设置 UID 和 PWD 属性。

许多支持的键为 ODBC 连接字符串属性。有关 ODBC 连接字符串的信息,请参阅 Using Connection String Keywords with SQL Native Client(将连接字符串关键字用于 SQL Native Client)。

PHP 连接资源。如果无法成功创建并打开连接,则返回 false

如果在可选 $connectionInfo 参数中未指定 UID 和 PWD 键的值,将尝试使用 Windows 身份验证进行连接。有关连接到服务器的详细信息,请参阅如何使用 Windows 身份验证进行连接如何使用 SQL Server 身份验证进行连接

以下示例使用 Windows 身份验证创建并打开了一个连接。该示例假设 SQL Server 和 AdventureWorks 数据库安装在本地计算机上。从命令行运行此示例时,所有的输出都将写入控制台。

<?php
/*
Connect to the local server using Windows Authentication and specify
the AdventureWorks database as the database in use. To connect using
SQL Server Authentication, set values for the "UID" and "PWD"
 attributes in the $connectionInfo parameter. For example:
$connectionInfo = array("UID" => $uid, "PWD" => $pwd)); 
*/
$serverName = "(local)";
$connectionInfo = array( "Database"=>"AdventureWorks");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn )
{
     echo "Connection established.\n";
}
else
{
     echo "Connection could not be established.\n";
     die( print_r( sqlsrv_errors(), true));
}

//-----------------------------------------------
// Perform operations with connection.
//-----------------------------------------------

/* Close the connection. */
sqlsrv_close( $conn);
?>