PHPからMSSQLデータベースにフォームからデータを送信できるページをまとめようとしています。私はPHPを正常にインストールしましたが(phpinfo()
はリモートコンピュータ上で正常に動作します)、sqlsrv extensionはロードされません。 php.ini
ファイルを編集しているのは知っています。もう1つの拡張子(wincache)が追加されており、正常にロードされており、phpinfo()
とget_loaded_extensions()
の両方で確認されています。IIS上のPHPがsqlsrvの拡張子を読み込まない
ログに何も表示されません。 IIS上のPHPマネージャは、sqlsrv拡張ファイルが有効であることを伝えています。私はウェブサイト、サーバ、コンピュータを再起動しましたが、何も動いていません。
Windows 7 UltimateマシンでPHP 7.1.1を使用しています。 x64モード、スレッドセーフではありません。私が有効にした拡張ファイルがスレッドセーフではないx64であることを確認しました。私は他に何をチェックするか、私が提供する必要がある情報が何であるか分かりません。
EDIT:this pageが示唆したように、私はphp-cgi.exe
を走り、それがエラーmesagesで出てきた:これは、問題が拡張DLLに自分自身であることを
[31-Mar-2017 22:38:12 UTC] PHP Warning: PHP Startup: Unable to load dynamic library 'C:\Program Files\iis express\PHP\v7.1\ext\php_sqlsrv_7_nts_x64.dll' - The specified procedure could not be found.
in Unknown on line 0
[31-Mar-2017 22:38:17 UTC] PHP Warning: PHP Startup: Unable to load dynamic library 'C:\Program Files\iis express\PHP\v7.1\ext\php_pdo_sqlsrv_7_nts_x64.dll' - The specified procedure could not be found.
in Unknown on line 0
を意味するのでしょうか?私はそれをどうやって修正するのだろうか?
EDIT 2: ImClarkyは、私がエクステンションの古いバージョンを使用していたことを明らかにしています。私はそれが働くんだが、今の私の認証は、私は理解していない理由のために失敗している:
function connect_sql() {
/* Specify server and connection attributes */
$serverName = "(local)";
/* Get UID and PWD from app-specific files */
$uid = file_get_contents("C:\AppData\uid.txt");
$pwd = file_get_contents("C:\AppData\pwd.txt");
$connectionInfo = array("UID" => $uid,
"PWD" => $pwd,
"Database" => "database_name");
/* Connect using SQL Server Auth */
$conn = sqlsrv_connect($serverName, $connectionInfo);
if ($conn === false)
{
echo "Unable to connect.</br>";
//die(print_r(sqlsrv_errors(), true));
die(print_errors());
}
else {
echo "Connection Successful";
}
/* Free connection resources */
sqlsrv_close($conn);
}
私は二重の私が正しいユーザ名とパスワードを使用していますし、私も中に行って、作成されたことを確認しました私が試している正確なUIDとパスワードを使用した全く新しいログイン。私はまだ、次のエラーメッセージを毎回取得:実行中のPHP
Unable to connect.
SQLSTATE: 28000
code: 18456
message: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Login failed for user 'username'.
SQLSTATE: 28000
code: 18456
message: [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Login failed for user 'username'.
実行中のsqlsrvのバージョンは何ですか? codeplexからのものは* old * ... [GitHub](https://github.com/Microsoft/msphpsql)は、最新バージョンの場所になりました。 – ImClarky
前のコメントに加えて、新しいバージョンが必要な場合は、バージョン4.1.3以上をダウンロードしてください。以前のバージョンはPHP 7.1をサポートしていません。 – ImClarky
@ImClarkyそれはやっているようでしたが、今は認証エラーが出ています。私はそのようなエラーに悩まされているような気分だが、接続スクリプトに正しいユーザー名とパスワードがあることを確認した。私は[MSDNページ](https://msdn.microsoft.com/en-us/library/cc296182(v = sql.105).aspx)の例を使用しています。スクリプトとエラーメッセージで質問を編集します。 – Abion47