私は同じ主題の質問に関するかなりの数の記事に出くわしましたが、それを解決することはまだできないので、お願いします。私は私のPHPスクリプトでSQLに接続しようとしています。私の接続文字列は次のとおりです。
/* Specify the server and connection string attributes. */
$serverName = "xxx-PC\SQLExpress";
$connectionOptions = array("Database"=>"Salesforce");
$conn = sqlsrv_connect($serverName, $connectionOptions);
if($conn === false)
{
die(print_r(sqlsrv_errors(), true));
}
Wampフォルダーの下にあるphp.ini
ファイルに以下をインストールして含めました:C:\wamp\bin\php\php5.4.16
:
extension=c:/wamp/bin/php/php5.4.16/ext/php_sqlsrv_53_ts.dll
私のwampserver
は正常に動作しています。wampapache
およびwampsqld
サービスも正常に動作しています。 php.exeを正常に実行できます。ただし、データベースが置かれているSQL Server 2008 R2
への接続を確立できません。助けてください!
編集1:SQL Server 2008 R2
に接続しようとしている間、wampサーバーはwampmysqlサービスを実行しています。これが理由でしょうか? MySQL
の代わりにSQL
を使用する必要がありますか?ポインタはありますか?
編集2:phpinfo()
を実行したときにsqlsrv
セクションがまったく表示されませんが、extension=php_sqlsrv_54_ts.dll
をwampサーバーのbinフォルダーにあるphp.ini
ファイルに追加しました。
これ 私の答えを得るのに役立ちました。私の場合、wamp用に2つのphp.ini
ファイルがあります。 1つはphpフォルダーの下にあり、もう1つはC:\wamp\bin\Apache\Apachex.x.x\bin
フォルダーにあります。 sqlsrv_connect
関数を介してSQLに接続する場合、Apache
フォルダー内のphp.ini
ファイルを参照します。このファイルに以下を(バージョンごとに)追加します。
extension=c:/wamp/bin/php/php5.4.16/ext/php_sqlsrv_53_ts.dll
サードパーティの拡張機能をインストールする場合、すべてのコンパイルパラメーターが一致することを確認する必要があります。
一般的な不具合には次のものがあります。
php.ini
ファイルの編集(これはバンドルで一般的です);正しいパスはphpinfo()
に示されています。起動エラーが表示されない;これらはApacheログに表示されますが、コマンドラインを使用して診断することもできます。例:
php -d display_startup_errors=1 -d error_reporting=-1 -d display_errors -c "C:\Path\To\php.ini" -m
すべてが正しい場合、コマンド出力にsqlsrv
および/またはphpinfo()
(設定しているSAPIに応じて)が表示されます。
[PHPモジュール]
bcmath
カレンダー
コア
[...]
SPL
sqlsrv
標準
[...]
Microsoft Drivers 3.1、3.0、および2.0を使用している場合。 IISで既にインストールされているPHPバージョンを確認してください。
このスクリプトを使用して、PHPバージョンを確認します。
<?php echo phpinfo(); ?>
OR
Webプラットフォームインストーラーを使用して IISのPHPマネージャー をインストールしている場合、そこからバージョンを確認できます。
次に:
新しいPHPバージョン(5.6)を使用している場合は、ダウンロードしてください ここからドライバ
PHPバージョン5.6未満-ダウンロードしてください ここからドライバ
次に、PHP Managerを使用して、ダウンロードしたドライバーをphp config
ファイルに追加します。以下に示すように実行できます(ファイルを参照して[OK]を押します)。 その後、IISサーバーを再起動します
この方法が機能しない場合は、phpバージョンを変更して、phpスクリプトを実行してみてください。 php version
を低く変更し、何が起こったのかを理解しようとすると、上記の手順に関連する関連ドライバーをダウンロードできます。
最初に、拡張機能がphpinfo();
に正しくロードされていることを確認します(sqlsrv
のようなものが表示されるはずです)。そうでない場合、拡張機能は適切にロードされません。拡張機能をインストールした後、Apacheを再起動する必要もあります。
apacheのhttpd.confでPHPIniDir D:/wamp/bin/php/php5.5.12
が間違っていたので、これは同じです。