2017-12-10 5 views
0

私はPHPスクリプトとMicrosoft Azure SQLデータベースの間の接続を確立しようとしていましたが、この同じ問題が続いています。私はXampp version 7.1.11/PHP 7.1.11, 7.0.25/PHP 7.0.25を試しましたが、今は5.6.32/PHP 5.6.32を使用しています。問題を読み込むSQL DLL PHP 5.6.32

私はMicrosoft Drivers for PHP for Microsoft SQL Serverをインストールしましたが、C:\xampp\php\extフォルダに追加されたバージョン5.6.32ではSQLSRV32.EXEを使用しています。

私はPHPのエラーログファイルにextension=php_sqlsrv_56_nts.dll保存し、再起動Apacheを追加するphp.iniファイルを編集するとき、私は私が試したXAMPPの各バージョンがこれを行っているエラーに

PHP Warning: PHP Startup: Unable to load dynamic library 'C:\xampp\php\ext\php_sqlsrv_56_nts.dll' - The specified module could not be found. in Unknown on line 0

を得続けます。誰もがアイデアや手を貸して、これを回避し、PHPを使ってAzure SQLデータベースに自分のSQL接続を完成させることはできますか?

+0

'php_sqlsrv_56_nts.dll'は' php.ini'の拡張ディレクトリになければならず、 'SQLSRV32.EXE'はシステムパス環境変数にあるディレクトリに存在する必要があります。 – AbraCadaver

+0

申し訳ありません私は質問に追加することを忘れました。私は 'C:\ xampp \ php \ etx'ディレクトリに' SQLSRX32.EXE'の内容を全て入れました。 –

+0

この記事に記載されている手順を試すhttps://blogs.msdn.microsoft.com/sqlphp/2015/05/11/getting-started-with-php-5-6-and-microsoft-sql-server-and-azure -sql-database / –

答えて

1

ので、更なる工夫と研究の後、私は最終的に私は上記きた問題を解決してきました。残念ながら、一般的なGoogle検索では、Microsoft Drivers for PHP for SQL ServerにはPHPバージョン7.0.XXまでのドライバしか含まれていません。 PHP Version 7.1.12については、私はthread safe1php_sqlsrv_71_ts_x64.dllここに見つけたMicrosoft Drivers 4.3 for PHP for SQL Serverを使用しました。なぜ私がこれを見つけるのにさらに3日かかったのか分かりません。

Azure SQLデータベースへの接続が機能するようになりました。手順は以下のとおりです。
1.獲得マイクロソフト
から正しいSQLドライバを使用すると、PHPバージョン7.1を使用している-ifドライバがHere
見つけることができるドライバがHere
2.インストールを見つけることができますPHPのバージョン7.0またはそれ以前のバージョンを使用している-if Microsoft ODBC Driver 13 for SQL Server
3. をphp\extフォルダにインストールする必要があります。 eg. C:\php\ext
4.編集しphp.iniファイルとは、あなたがダウンロードした.dll's(ドライバ)を置いC:\php\extフォルダへextension_dir=ポイントを確保。
5. php.iniファイルにextension=required .dll nameを追加し、約890行私の場合はこれがありますextension=php_sqlsrv_71_ts_x64.dll
12. php.iniを保存し、Apacheを再起動します。
sqltest.php

$connectionInfo = array("UID" => "USERNAME", "pwd" => "PASSWORD", "Database" => "DBNAME", "LoginTimeout" => 30, "Encrypt" => 1, "TrustServerCertificate" => 0); 
    $serverName = "SERVERNAME"; 
    $conn = sqlsrv_connect($serverName, $connectionInfo); 

    if (sqlsrv_errors($conn)) { 
     die('Failed to connect to Azure SQL: '.sqlsrv_errors()); 
    } else { 
     echo "Connection to Microsoft Azure SQL Server has succeeded! <br /><br />"; 
    } 

    $tsql = "SELECT * FROM [Users];"; 
    $getResults = sqlsrv_query($conn, $tsql); 
    echo ("Reading data from table <br />" . PHP_EOL); 

    if ($getResults == FALSE) 
     echo(sqlsrv_errors()); 
    while ($row = sqlsrv_fetch_array($getResults, SQLSRV_FETCH_ASSOC)) { 
     echo ($row['Id'] . " " . $row['Name'] . " " . $row['Username'] . " " . $row['Password'] . "<br /> " . PHP_EOL); 
    } 
    sqlsrv_free_stmt($getResults); 
    ?> 

さらなる情報は、上記すべての人からの有益入力のすべてにHere

おかげで再び、マイクロソフトによって提供され、次のよう

私は私の接続をテストするために使用しましたPHPスクリプトです。

1

まず、phpinfo()を開き、のスレッドセーフを検索します。有効になっている場合は、代わりにスレッドセーフDLLを使用する必要があります。

enter image description here

関連する問題