PHP7 sqlsrvドライバを使用してMS SQL Serverに接続しようとしています。 それは私のブラウザが実行しようとしたときのように思える:sqlsrv_connectの試行が成功または失敗しない
$conn = new PDO("sqlsrv:Server=$serverName;Database=mydb", $uname, $pass);
または
$conn = sqlsrv_connect($serverName, $connectionInfo);
それだけでハングアップします。エコー/ダイメッセージが受信された場合、成功または失敗はありません。代わりに、私のブラウザのホイールが回転し続け、ステータスメッセージは "localhostを待っています"です。それはまた、タイムアウトしていないようです。私は10分以上待っていて、接続は失敗/成功しません。
完全なコード(私が試した手続きとPDOメソッド):
<?php
//
$serverName = "myserver\myinstance"; //serverName\instanceName
$uname = "myuser";
$pass = "mypass";
$connectionInfo = array("Database"=>"mydb", "UID"=>$uname, "PWD"=>$pass);
/*Procedural sqlsrv method
$conn = sqlsrv_connect($serverName, $connectionInfo);
if($conn) {
echo "Connection established.<br />";
die("DONE");
}else{
echo "Connection could not be established.<br />";
die(print_r(sqlsrv_errors(), true));
}
*/
/*PDO sqlsrv method*/
try {
$conn = new PDO("sqlsrv:Server=$serverName;Database=mydb", $uname, $pass);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
die("success!");
} catch(PDOException $e) {
die($e->getMessage());
}
?>
セットアップの詳細やその他の情報:私はXAMPPを使用してい
- 。
- のWindows 7のx64
- PHP 7.0.9
- 私はSQL Server認証を経て認可する必要があるのWindows NTマシン
- にMicrosoft SQL Serverのバージョン10.50.6220.0のインスタンスに接続しようとしています - - ないWindows承認
- 私は正常にサーバーがリモートであるが、(SSMSで検証される) リモート接続を受け入れている
- のMicrosoft SQL Server Management Studioをし、他のツール(FMEワークベンチ) を使用してデータベースに接続することができますよ
私は私のphp/extにフォルダに
php_sqlsrv_7_ts_x86.dll
と
php_pdo_sqlsrv_7_ts_x86.dll
をインストールし、php.iniの更新まで、私は以前に ")(未定義の関数sqlsrv_connect" の問題を持っていました。 phpinfoを開くと、「Registered PHP Streams」と「PDO drivers」フィールドの両方にsqlsrvが表示されます。
正常に接続するにはどうすればよいですか、または接続の試行が成功しなかった/失敗した理由について詳しく知るにはどうすればよいですか?
編集: 私はXAMPP(PHP 5.6.24)に切り替えました。 CLI経由でSQL Serverに接続できましたが、PHP-CGI経由で(ブラウザ経由で/ Apache HTTPDで提供)接続できませんでした。私は、sqlsrvとPDOの拡張機能が正常に読み込まれたことをphp_info()で再度確認しました。 PHP-CGIとPHP CLIの違いを見て、問題の原因を調べてみましょう。
EDIT: Apacheの代わりにIISを使用していますが、問題なしでsqlsrv経由で接続できます。実際には解決策ではなく、問題を回避する方法です。