2017-11-03 24 views
1
私たちは、 "Microsoft SQL Serverの管理Studio" からアクセスできるSQL Serverに接続しようとしています

:私はしました致命的なエラー:不明なエラーは:未定義の関数sqlsrv_connect()の呼び出し

enter image description here

私はSOに見たことのあるさまざまなものを試しましたが、何も働いていませんでした。

$serverName = "SERVER.DOMAIN.COM, 1433"; //serverName\instanceName, portNumber (default is 1433) 
$connectionInfo = array("Database"=>"DB_NAME", "UID"=>"USER", "PWD"=>"PASS"); 
$ma_conn = sqlsrv_connect($serverName, $connectionInfo); 

if($ma_conn) { 
    echo "Connection established.<br />"; 
}else{ 
    echo "Connection could not be established.<br />"; 
    die(print_r(sqlsrv_errors(), true)); 
} 

私のphp.iniファイルが有効にされているさまざまな機能拡張を経験してきたが、どれが働いていない:test.phpページに次のコードを実行しているとき、私は、エラーFatal error: Uncaught Error: Call to undefined function sqlsrv_connect() in C:\Apache24\htdocs\test.php:52 Stack trace: #0 {main} thrown in C:\Apache24\htdocs\test.php on line 52を取得します。私は、次のすべて試してみた:

extension = php_sqlsrv_56_ts.dll 
extension=php_sqlsrv_55_ts.dll 
extension=php_sqlsrv_55_nts.dll 
extension=php_sqlsrv_55_ts.dll 
extension=php_pdo_sqlsrv_55_ts.dll 
extension=php_pdo_mssql.dll 
extension=php_pdo_mysql.dll 

を現在私が持っている:

Microsoft Windows [Version 6.3.9600] 
(c) 2013 Microsoft Corporation. All rights reserved. 

C:\Windows\system32>php -c c:\apache24\php7\php.ini -v -display_startup_errors=1 

PHP Warning: PHP Startup: Unable to load dynamic library 'c:\apache24\php7\ext\ php_pdo.dll' - %1 is not a valid Win32 application. 
in Unknown on line 0 
PHP Warning: PHP Startup: Unable to load dynamic library 'c:\apache24\php7\ext\ php_sqlsrv_54_ts.dll' - %1 is not a valid Win32 application. 
in Unknown on line 0 PHP 
Warning: PHP Startup: Unable to load dynamic library 'c:\apache24\php7\ext\ php_pdo_sqlsrv_54_ts.dll' - %1 is not a valid Win32 application. 
in Unknown on line 0 
PHP 7.0.10 (cli) (built: Aug 18 2016 09:48:53) (ZTS) 
Copyright (c) 1997-2016 The PHP Group 
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies 

C:\Windows\system32> 

私は」:私は次の取得CMDでApacheとPHPを持つマシンで

extension_dir = "c:\apache24\php7\ext\" 
extension=php_pdo.dll 
extension=php_pgsql.dll 
[PHP_SQLSRV] 
extension=php_sqlsrv_54_ts.dll 
[PHP_PDO_SQLSRV] 
extension=php_pdo_sqlsrv_54_ts.dll 

また、C:\Apache24\php7\extフォルダ内にSQLSRV32.EXEをダウンロードして実行しました。

は私が持っている:

  • のWindows Server 2012のRSは
  • はApache 2.4.23のWin64
  • PHP 7.0.10のWin64
  • のMicrosoft SQL Server 2012のネイティブクライアントは
  • のMicrosoft Visual CをWIN64 WIN64 ++ 2012 x64 & x86再配布可能ファイル(2種類)
  • Microsoft Visual C++ 2015再配布可能ファイル(x64 &のx86) - 14.0.23026
  • SQL Serverの

enter image description here

enter image description here

答えて

1

用のMicrosoft ODBCドライバ11は、php.iniのあなたの試行のリスト(php_sqlsrv_XX_ts.dll)に準拠、あなたが持っていますPHP v5.5およびv5.6の拡張機能を有効にしました。しかし、PHP 7.0を実行しているので、対応するMicrosoft Drivers for PHP for SQL Serverをダウンロードしてアクティブにする必要があります。あなたはドライババージョン4.0をダウンロードする必要があるようです。これはphp.net page for SQLSRV extensionに記載されています。

The SQLSRV extension is supported by Microsoft and available for download here: http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx .

Loading the PHP SQL Driverの手順をご覧ください。おそらく、php_sqlsrv_7_XX.dllXXというファイルがあります。「ts」または「nts」(スレッドセーフまたはスレッドセーフではありません)です。私はあなたがスレッドセーフなバージョンが必要だと思います。

それ以外の場合は、PDO_SQLSRV DSN(接続文字列)とPDO一般的な機能を持つMS SQL Server (PDO) PDOドライバ(リンクの「インストール」の部分を読んでください)を使用してください。すべてのドライバーに共通です。ドライバはphp.iniにextension=php_pdo_sqlsrv_7_ts.dllとして追加されます(指示については同じページを確認してください:Loading the PHP SQL Driver)。あなたが私に尋ねるなら、私は本当にこのオプションを選ぶでしょう。

Nota Bene: configsで変更するたびにWebサーバーまたはdbサービスを再起動することを忘れないでください!

幸運。

関連する問題