共用方式為


sqlsrv_connect

建立連接資源並開啟連接。根據預設,連接的嘗試是使用 Windows 驗證來進行。

語法

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

參數

$serverName:字串,可指定要與其建立連接的伺服器名稱。執行個體名稱 (例如 "myServer\instanceName") 或通訊埠編號 (例如 "myServer, 1521") 可以併入為這個字串的一部分。如需此參數適用選項的完整描述,請參閱<搭配 SQL Native Client 使用連接字串關鍵字>(英文) <ODBC 驅動程式連接字串關鍵字>一節中的 Server 關鍵字。

$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)

資料庫

字串

指定建立的連接上使用的資料庫名稱1。

所使用之登入的預設資料庫。

加密

1 或 true 表示開啟加密。

0 或 false 表示關閉加密。

指定是否加密與 SQL Server 的通訊,1 或 true 表示加密,0 或 false 表示不加密2。

false (0)

Failover_Partner

字串

指定當主要伺服器無法使用時,所要使用的伺服器和資料庫鏡像的執行個體 (如果已啟用及設定)。

未設定任何值。

LoginTimeout

整數

指定在連接嘗試失敗以前所要等候的秒數。

無逾時。

MultipleActiveResultSets

1 或 true 表示使用 Multiple Active Result Sets。

0 或 false 表示停用 Multiple Active Result Sets。

可讓您停用或明確啟用 Multiple Active Result Sets (MARS) 的支援。這個索引鍵是 SQL Server Driver for PHP 1.1 版新增的。

如需詳細資訊,請參閱<如何:停用 Multiple Active Result Sets (MARS)>。

false (0)

PWD

字串

指定在使用 SQL Server 驗證進行連接時,與所要使用的使用者識別碼有關聯的密碼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 類型。

您可以將日期和時間類型 (datetime、date、time、datetime2 和 datetimeoffset) 當做字串或 PHP 類型來擷取。

如需詳細資訊,請參閱<如何:將日期和時間類型當做字串來擷取>。

false

TraceFile

字串

用於追蹤資料之檔案的路徑。

未設定任何值。

TraceOn

1 或 true 表示啟用追蹤。

0 或 false 表示停用追蹤。

指定要針對建立的連接啟用 (1 或 true) 或停用 (0 或 false) ODBC 追蹤。

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 驗證進行連接時所要使用的使用者識別碼3。

未設定任何值。

WSID

字串

用於追蹤的電腦名稱。

未設定任何值。

1. 在建立的連接上所執行的所有查詢都會針對 Database 屬性指定的資料庫來執行。但是,如果使用者有適當的權限,可以使用完整名稱來存取其他資料庫中的資料。例如,如果使用 Database 連接屬性來設定 master 資料庫,仍然可以執行 Transact-SQL 查詢來存取 AdventureWorks.HumanResources.Employee 資料表 (利用完整名稱)。

2. 啟用 Encryption 會影響某些應用程式的效能,因為加密資料需要額外的運算負擔。

3. 當使用 SQL Server 驗證進行連接時,必須設定 UIDPWD 屬性。

許多支援的索引鍵都是 ODBC 連接字串屬性。如需有關 ODBC 連接字串的資訊,請參閱<搭配 SQL Native Client 使用連接字串關鍵字>(英文)。

傳回值

PHP 連接資源。如果未能順利建立及開啟連接,便會傳回 false

備註

如果選擇性 $connectionInfo 參數內未指定 UIDPWD 索引鍵的值,將會嘗試使用 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);
?>

另請參閱

概念

有關文件集中的程式碼範例

其他資源

API 參考 (SQL Server Driver for PHP)
連接到伺服器