2

私の環境:
-Windows Server2008R2。
--ApacheWebサーバー。
-PHP 5.4.7

SQLServer用のPHP用MicrosoftDrivers3.0をダウンロードしてインストールしました。
「php_pdo_sqlsrv_54_ts.dll」をphpに含めました。

Microsoftには、ドライバーに役立つchmファイル(SQLSRV_Help.chm)が含まれています。

このヘルプファイルには、Windows認証を使用したPDOの例があります。

/* Connect using Windows Authentication. */
try {
  $conn = new PDO("sqlsrv:server=$serverName ; Database=AdventureWorks", "", "");
  $conn->setAttribute( PDO::ATTR ERRMOE, PDO::ERRMODE EXCEPTION );
}

ただし、SQLServer認証を使用してMSSQL Server2008R2に接続する必要があります。

SQLServerへの接続の違いは何ですか

  1. PDOとWindows認証を使用する
  2. PDOとSQLServer認証を使用する

接続文字列だけですか?私は書く必要がありますか:

$conn = new PDO("sqlsrv:server=$serverName; Database=AdventureWorks; UID=sa; PWD=abc");

または私は書く必要がありますか:

$conn = new PDO("sqlsrv:server=$serverName; Database=AdventureWorks; User Id=sa; password=abc");

前もって感謝します

アップデート:

私は解決策を見つけました:

http://www.connectionstrings.com/sql-server-2008

4

1 に答える 1

4

ここで説明するように、コンストラクターにはオプションの2番目と3番目のパラメーターがあり、ユーザー名とパスワードを指定します。

PDO :: __construct

SQLServerデータベースへの接続を作成します。

構文PDO::__ Construct($ dsn [、$ username [、$ password [、$ driver_options]]])

パラメーター

$ dsn:プレフィックス名(常にsqlsrv)、コロン、およびServerキーワードを含む文字列。たとえば、「sqlsrv:server =(local)」です。オプションで、他の接続キーワードを指定できます。サーバーキーワードおよびその他の接続キーワードの説明については、接続オプションを参照してください。$ dsn全体が引用符で囲まれているため、各接続キーワードを個別に引用符で囲むことはできません。

$ username:オプション。ユーザーの名前を含む文字列。SQL Server認証を使用して接続するには、ログインIDを指定します。Windows認証を使用して接続するには、「」を指定します。

$ password:オプション。ユーザーのパスワードを含む文字列。SQL Server認証を使用して接続するには、パスワードを指定します。Windows認証を使用して接続するには、「」を指定します。

[...]

これは、次のようにPDO+SQL認証を使用してSQLServerに接続できることを意味します。

$conn = new PDO(
    "sqlsrv:server=$serverName ; Database=AdventureWorks",
    "sa",
    "strong password"
);

接続オプションのセクションには、 PDO_SQLSRVを使用する場合、接続文字列UIDでパラメータを使用できないことも記載されています。PWD

于 2013-01-17T21:18:38.057 に答える