このトピックでは、連想配列で許可されているオプション (SQLSRV ドライバーで sqlsrv_connect を使用する場合)、またはデータ ソース名 (dsn) で許可されているキーワード (PDO_SQLSRV ドライバーで PDO::__construct を使用する場合) を一覧に示します。
接続オプションの表
| キー | 値 | 説明 | デフォルト |
|---|---|---|---|
| AccessToken | String | OAuth JSON 応答から抽出された Microsoft Entra アクセス トークンのバイト文字列。 接続文字列には、ユーザー ID、パスワード、または Authentication キーワードを含めることができません。 詳細については、「Microsoft Entra 認証を使用して接続する」を参照してください。接続プールが有効になっている場合、ドライバーはトークンの内容をハッシュし、それを APP キーワードに追加して、トークン ID ごとのプール キーの区別を保証します (バージョン 5.13.1 以降)。 アプリケーションで APP が指定されていない場合、このハッシュは program_name の sys.dm_exec_sessions 列に表示されます。 |
未設定。 |
| アプリ | String | トレースで使用されるアプリケーション名を指定します。 接続プールを有効にして AccessToken を指定すると、ドライバーはプール キーの区別のために内部ハッシュを APP に追加します。
APPの値を設定すると、AccessTokenのprogram_name列に表示されるsys.dm_exec_sessions ハッシュがオーバーライドされます。 |
未設定。 |
| ApplicationIntent | String | アプリケーションがサーバーに接続するときのワークロードのタイプを宣言します。 有効値は、ReadOnly と ReadWrite です。 Always On 可用性グループに対する Microsoft SQL Server 用 Drivers for PHP サポートの詳細については、「高可用性およびディザスター リカバリーのサポート」をご覧ください。 |
ReadWrite |
| AttachDBFileName (データベース ファイル名を添付) | String | サーバーがアタッチするデータベース ファイルを指定します。 | 未設定。 |
| 認証 | 次の文字列のいずれかです。 SqlPassword ActiveDirectoryPassword [非推奨] ActiveDirectoryMsi ActiveDirectoryServicePrincipal |
認証モードを指定します。 詳細については、「Microsoft Entra 認証を使用して接続する」を参照してください。 |
未設定。 |
| 文字セット (PDO_SQLSRV ドライバーではサポートされていません) |
String | サーバーにデータを送信するために使用する文字セットを指定します。 可能な値は SQLSRV_ENC_CHAR と UTF-8 です。 詳細については、「組み込みの UTF-8 サポートを使用した UTF-8 データの送信と取得」をご覧ください。 |
SQLSRV_ENC_CHAR |
| カラム暗号化 | 次の文字列のいずれかです。 有効 無効 エンクレーブを証明するための証明プロトコルとURLを識別する文字列 |
Always Encrypted 機能が有効かどうかを指定します。 構成証明プロトコルと URL が指定されている場合、セキュリティで保護されたエンクレーブを持つ Always Encrypted が有効になります。ただし、「 PHP Drivers for SQL Server でのセキュリティで保護されたエンクレーブでの Always Encrypted の使用」の説明に従って他の要件が満たされている場合。 | 無効 |
| コネクションプーリング | 接続プールを有効にするには、1 または true を設定します。 接続プールを無効にするには、0 または false に設定します。 |
接続を接続プールから割り当てる (1 または true) か、割り当てない (0 または false) かを指定します。1 | true (1) |
| ConnectRetryCount | 0 から 255 までの整数 | 中止するまでに、切断された接続の再確立を試みる最大回数。 既定では、接続が切断されると、接続の再確立が 1 回試みられます。 値 0 は、再接続が試みられないことを意味します。 | 1 |
| ConnectRetryInterval(接続再試行間隔) | 1 から 60 までの整数 | 接続の再確立を試行する秒単位の時間間隔。 アプリケーションでは、接続途絶検出直後に再接続が試みられた後、ConnectRetryInterval 秒待ってから、再試行されます。
ConnectRetryCount が 0 の場合、このキーワードは無視されます。 |
10 |
| データベース | String | 確立中の接続に使用されているデータベースの名前を指定します2。 | 使用されているログインの既定のデータベース。 |
| 小数点以下桁数 (PDO_SQLSRV ドライバーではサポートされていません) |
0 から 4 までの整数 | フェッチされた通貨値の書式設定時に、小数点以下の桁数を指定します。 このオプションは FormatDecimals が true の場合のみ機能します。 負の整数値または 4 を超える値は無視されます。 |
既定の有効桁数と小数点以下桁数 |
| ドライバー | String | SQL Server との通信に使用する Microsoft ODBC ドライバーを指定します。 次のいずれかの値になります。 SQL Server 用 ODBC ドライバー 18 ODBC Driver 17 for SQL Server(SQL Server のための ODBC Driver 17) ODBC ドライバー 13 for SQL Server(SQL Server 用の ODBC ドライバー 13) ODBC Driver 11 for SQL Server (Windows のみ)。 |
Driver キーワードが指定されていない場合、Microsoft Drivers for PHP for SQL Server では、ODBC の最新バージョン以降など、システムでサポートされている Microsoft ODBC ドライバーの検索が試行されます。 |
| Encrypt | 暗号化を有効にするには、1 または true 。 暗号化を無効にするには、0 または false 。 |
SQL Server との通信を暗号化する (1 または true) か、暗号化しない (0 または false) かを指定します3。 | false (0) |
| フェイルオーバーパートナー | String | プライマリ サーバーが利用できないときに使用する、データベースのミラーのサーバーおよびインスタンス (有効かつ構成されている場合) を指定します。Failover_Partner と MultiSubnetFailover を併用するには制限があります。 詳細については、「高可用性、障害復旧のサポート」をご覧ください。このオプションは、Linux または macOS ではサポートされていません。Linux または macOS 上の ODBC ドライバーではデータベース ミラーリングがサポートされていないためです。 代わりに、Always On 可用性グループを使用し、 MultiSubnetFailover と TransparentNetworkIPResolution のオプションを設定します。 |
未設定。 |
| フォーマットデシマルス (PDO_SQLSRV ドライバーではサポートされていません) |
フェッチされた 10進文字列をフォーマットするには、1 または true を設定します。 既定の 10 進書式設定の動作にするには、0 または false。 |
該当する場合に 10 進文字列の前にゼロを追加するかどうかを指定し、通貨型を書式設定するための DecimalPlaces オプションを有効にします。 false のままにすると、正確な有効桁数を戻し、1 未満の値の前にあるゼロを省略するという既定の動作が使用されます。詳細については、10 進数文字列と金額の書式設定に関するページをご覧ください。 |
false (0) |
| KeyStoreAuthentication |
KeyVaultPassword KeyVaultClientSecret |
Azure Key Vault にアクセスするための認証方法。
KeyStorePrincipalId と KeyStoreSecret で使用される資格情報の種類を制御します。 詳細については、「Azure Key Vault の使用」を参照してください。 |
未設定。 |
| KeyStorePrincipalId (キーストアプリンシパルID) | String | Azure Key Vault にアクセスする必要があるアカウントの識別子。 KeyStoreAuthentication が KeyVaultPassword の場合、この値は Microsoft Entra ユーザー名である必要があります。 KeyStoreAuthentication が KeyVaultClientSecret の場合、この値はアプリケーション クライアント ID にする必要があります。 |
未設定。 |
| KeyStoreSecret | String | Azure Key Vault にアクセスする必要があるアカウントの資格情報のシークレット。 KeyStoreAuthentication が KeyVaultPassword の場合、この値は Microsoft Entra のパスワードである必要があります。 KeyStoreAuthentication が KeyVaultClientSecret の場合、この値はアプリケーション クライアント シークレットにする必要があります。 |
未設定。 |
| Language | String | サーバーから返されるメッセージの言語を指定します。 使用できる言語は、sys.syslanguages の表に一覧表示されます。 このオプションは、現在英語でのみ使用できるため、ドライバー自体が使用する言語には影響しません。また、基となる ODBC ドライバーの言語には影響せず、クライアント システムにインストールされているローカライズ バージョンによって言語が決まります。 そのため、この設定を変更すると、PHP ドライバー、ODBC ドライバー、または SQL Server のいずれから送信されたかに応じて、異なる言語でメッセージが返される可能性があります。 |
既定値は SQL Server で設定されている言語です。 |
| ログインタイムアウト | 整数 (SQLSRV ドライバー) 文字列 (PDO_SQLSRV ドライバー) |
接続の試行に失敗するまで待機する秒数を指定します。 | タイムアウトはありません。 |
| MultipleActiveResultSets(複数アクティブ結果セット) | 複数のアクティブな結果セットを使用するには、1 または true 。 複数のアクティブな結果セットを無効にするには、0 または false 。 |
複数のアクティブな結果セット (MARS) のサポートを無効にするか、または明示的に有効にします。 詳細については、「方法: 複数のアクティブな結果セット (MARS) を無効にする」を参照してください。 |
真 (1) |
| MultiSubnetFailover | String | SQL Server 2012 (11.x) 可用性グループまたは SQL Server 2012 (11.x) フェールオーバー クラスター インスタンスの可用性グループ リスナーに接続する際には、必ず multiSubnetFailover=yes を指定してください。
multiSubnetFailover=yes によって、(現在) アクティブなサーバーを迅速に検出し、接続するように Microsoft SQL Server 用 Drivers for PHP が構成されます。 可能な値は Yes と No です。Always On 可用性グループに対する Microsoft SQL Server 用 Drivers for PHP サポートの詳細については、「高可用性およびディザスター リカバリーのサポート」をご覧ください。 |
いいえ |
| PWD (PDO_SQLSRV ドライバーではサポートされていません) |
String | SQL Server 認証で接続するときに使用するユーザー ID に関連付けるパスワードを指定します4。 | 未設定。 |
| クォーテッドID | SQL-92ルールを使用するには、1またはtrueを指定します。 レガシールールを使用するには、0 または false。 |
引用符で囲まれた識別子に SQL-92 ルールを使用する (1 または true) か、またはレガシ Transact-SQL ルールを使用する (0 または false) かを指定します。 | true (1) |
| 日付を文字列として返す (PDO_SQLSRV ドライバーではサポートされていません) |
日付/時刻型を文字列として返すには、1 または true 。 日付/時刻型を PHP DateTime 型として返すには、0 または false 。 |
日付/時刻型 (datetime、smalldatetime、date、time、datetime2、および datetimeoffset) を、文字列または PHP 型として取得します。 詳細については、「SQLSRV ドライバーを使用して日付/時刻型を文字列として取得する」を参照してください。 PDO_SQLSRV ドライバーを使用すると、特に指定がない限り、日付は文字列として返されます。 詳細については、「PDO_SQLSRV ドライバーを使用して日付と時刻の型を PHP DateTime オブジェクトとして取得する」を参照してください。 |
false |
| スクロール可能 | String | 「buffered」は、結果セット全体をメモリ内にキャッシュするために、クライアント側の (バッファー) カーソルが必要ですることを示します。 詳細については、「カーソルの種類 (SQLSRV ドライバー)」を参照してください。 | 順方向専用カーソル |
| サーバー (SQLSRV ドライバーではサポートされていません) |
String | 接続する SQL Server インスタンス。 また、Always On 可用性グループへの接続に仮想ネットワーク名を指定することもできます。 Always On 可用性グループに対する Microsoft SQL Server 用 Drivers for PHP サポートの詳細については、「高可用性およびディザスター リカバリーのサポート」をご覧ください。 |
サーバーは必須キーワードです (ただし、接続文字列の最初のキーワードである必要はありません)。 サーバー名がキーワードに渡されない場合は、ローカル インスタンスへの接続が試行されます。 サーバーに渡される値には、 SQL Server インスタンスの名前またはインスタンスの IP アドレスを指定できます。 必要に応じて、ポート番号を指定できます (たとえば、 sqlsrv:server=(local),1033)。Microsoft SQL Server 用 Drivers for PHP のバージョン 3.0 以降では、 server=(localdb)\instancenameで LocalDB インスタンスを指定することもできます。 詳細については、「LocalDB のサポート」を参照してください。 |
| トレースファイル | String | トレース データに使用するファイルのパスを指定します。 | 未設定。 |
| TraceOn | トレースを有効にするには、1 または true 。 トレースを無効にするには、0 または false 。 |
確立中の接続に対して ODBC トレースを有効にする (1 または true) か、または無効にする (0 または false) かを指定します。 | false (0) |
| トランザクション隔離 | SQLSRV ドライバーは、次の値を使用します。 SQLSRV_TXN_READ_UNCOMMITTED SQLSRV_TXN_READ_COMMITTED SQLSRV_TXN_REPEATABLE_READ SQLSRV_TXN_SNAPSHOT SQLSRV_TXN_SERIALIZABLE PDO_SQLSRV ドライバーは、次の値を使用します。 PDO::SQLSRV_TXN_READ_UNCOMMITTED PDO::SQLSRV_TXN_READ_COMMITTED PDO::SQLSRV_TXN_REPEATABLE_READ PDO::SQLSRV_TXN_SNAPSHOT PDO::SQLSRV_TXN_SERIALIZABLE |
トランザクション分離レベルを指定します。 トランザクション分離の詳細については、SQL Server のドキュメントの「SET TRANSACTION ISOLATION LEVEL」を参照してください。 |
SQLSRV_TXN_READ_COMMITTED または PDO::SQLSRV_TXN_READ_COMMITTED |
| 透明ネットワークIP解決 | [有効] または [無効] | ホスト名の解決された最初の IP が応答せず、ホスト名に複数の IP が関連付けられている場合は、接続シーケンスに影響があります。MultiSubnetFailover とやり取りして、さまざまな接続シーケンスを提供します。 詳細については、「透過的なネットワーク IP の解決」または「透過的なネットワーク IP の解決の使用」を参照してください。 |
有効化 |
| TrustServerCertificate | 証明書を信頼する場合は、「1」またはtrueを選択します。 証明書を信頼しない場合は、0 または false 。 |
クライアントが自己署名サーバー証明書を信頼する (1 または true) か、または拒否する (0 または false) かを指定します。 | false (0) |
| UID (PDO_SQLSRV ドライバーではサポートされていません) |
String | SQL Server 認証で接続するときに使用するユーザー ID を指定します4。 | 未設定。 |
| WSID | String | トレースするコンピューターの名前を指定します。 | 未設定。 |
ConnectionPooling属性を使用して、Linux および macOS で接続プールを有効または無効にすることはできません。 「接続プール (SQL Server 用 Microsoft Drivers for PHP)」を参照してください。確立された接続で実行されるすべてのクエリは、
Database属性で指定されたデータベースに対して行われます。 ただし、ユーザーが適切なアクセス許可を持っている場合は、完全修飾名を使用して他のデータベース内のデータにアクセスできます。 たとえば、master データベースがDatabase接続属性で設定されている場合でも、完全修飾名を使用して、AdventureWorks.HumanResources.Employee テーブルにアクセスする Transact-SQL クエリを実行できます。Encryptionを有効にすると、データの暗号化に必要な計算オーバーヘッドにより、いくつかのアプリケーションのパフォーマンスに影響を与える可能性があります。SQL Server 認証で接続する場合は、
UID属性とPWD属性の両方を設定する必要があります。
サポートされているキーの多くは、ODBC 接続文字列属性です。 ODBC 接続文字列については、「SQL Server Native Client での接続文字列キーワードの使用」を参照してください。