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

String

トレースで使用するアプリケーションの名前です。

値は設定されていません。

CharacterSet

String

データをサーバーに送信するために使用する文字セットを指定します。このキーは、SQL Server Driver for PHP Version 1.1 で追加されました。

詳細については、「組み込みの UTF-8 サポートを使用して UTF-8 データを送信および取得する方法」を参照してください。

SQLSRV_ENC_CHAR

ConnectionPooling

接続プールを有効にする場合は 1 または true

接続プールを無効にする場合は 0 または false

接続を接続プールから割り当てるか (1 または true) 接続プールから割り当てないか (0 または false) を指定します。

true (1)

Database

String

確立する接続で使用されているデータベースの名前を指定します1。

使用中のログインの既定のデータベース。

Encrypt

暗号化を有効にする場合は 1 または true

暗号化を無効にする場合は 0 または false

SQL Server との通信を暗号化するか (1 または true) 暗号化しないか (0 または false) を指定します2。

false (0)

Failover_Partner

String

プライマリ サーバーが使用できない場合に使用するデータベースのミラー サーバーとインスタンスを指定します (ミラーが有効化されて構成されている場合)。

値は設定されていません。

LoginTimeout

Integer

接続の試行が失敗するまでに待機する時間を秒単位で指定します。

タイムアウトなし。

MultipleActiveResultSets

複数のアクティブな結果セットを使用するには 1 または true

複数のアクティブな結果セットを無効にするには 0 または false

複数のアクティブな結果セット (MARS) のサポートを無効にするか、または明示的に有効にできます。このキーは、SQL Server Driver for PHP Version 1.1 で追加されました。

詳細については、「複数のアクティブな結果セット (MARS) を無効にする方法」を参照してください。

false (0)

PWD

String

SQL Server 認証で接続するときに使用するユーザー ID に関連付けられているパスワードを指定します3。

値は設定されていません。

QuotedId

SQL-92 の規則を使用する場合は 1 または true

従来の規則を使用する場合は 0 または false

引用符で囲まれた識別子に対して SQL-92 の規則を使用するか (1 または true) 従来の Transact-SQL の規則を使用するか (0 または false) を指定します。

true (1)

ReturnDatesAsStrings

日付型および時刻型のデータを文字列として返すには、1 または true

日付型および時刻型のデータを PHP DateTime 型として返すには、0 または false

日付型と時刻型 (datetime、date、time、datetime2、および datetimeoffset) を文字列型または PHP 型として取得できます。

詳細については、「日付型および時刻型のデータを文字列として取得する方法」を参照してください。

false

TraceFile

String

トレース データに使用するファイルのパスです。

値は設定されていません。

TraceOn

トレースを有効にする場合は 1 または true

トレースを無効にする場合は 0 または false

確立する接続で ODBC トレースを有効にするか (1 または true) 無効にするか (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

String

SQL Server 認証で接続するときに使用するユーザー ID を指定します3。

値は設定されていません。

WSID

String

トレースするコンピューターの名前です。

値は設定されていません。

1. 確立された接続で実行するクエリはすべて、Database 属性で指定したデータベースに対して実行されます。ただし、ユーザーに適切な権限があれば、完全修飾名を使用して他のデータベースのデータにアクセスすることもできます。たとえば、Database 接続属性で master データベースが設定されていても、完全修飾名を使用すれば、AdventureWorks.HumanResources.Employee テーブルにアクセスする Transact-SQL クエリを実行できます。

2. Encryption を有効にすると、データを暗号化するために必要な計算のオーバーヘッドにより、一部のアプリケーションのパフォーマンスに影響が及ぶ可能性があります。

3. SQL Server 認証を使用して接続するときには、UIDPWD の両方の属性を設定する必要があります。

サポートされているキーの多くは ODBC 接続文字列の属性です。ODBC 接続文字列については、「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);
?>

参照

概念

ドキュメントのコード例について

その他のリソース

API リファレンス (SQL Server Driver for PHP)
サーバーへの接続