5

MSSQL Server 2008、MS WINDOWS SERVER 2008 RC2、および PHP 5.4 を使用しています。

php.info には行があります

[PHP_PDO_SQLSRV_54_NTS]
extension=php_pdo_sqlsrv_54_nts.dll
[PHP_PDO_ODBC]
extension=php_pdo_odbc.dll
[PHP_SYBASE_CT]
extension=php_sybase_ct.dll
[PHP_SQLSRV_54_NTS]
extension=php_sqlsrv_54_nts.dll

PHP情報はこちらhttp://89.111.180.28/index.php

拡張機能 php.ini の行は表示されますが、拡張機能 SQLSRV の行は php.info に表示されません...

MSSQL SERVERに接続するには、スクリプトを使用します

$conn_array = array (
            "UID" => "user", 
            "PWD" => "passw", 
            "Database" => "database",
            "Encrypt" => 1,
            "TrustServerCertificate" => 1) ;

$conn2 = sqlsrv_connect('localhost' , $conn_array);

if ($conn2)
    {
        echo 'MSSQL Connection successful';
    }
else
    {
        die( print_r( sqlsrv_errors(), true));
    }

sqlsrv_close( $conn2 );

しかし、私はエラーが表示されます:

Fatal error: Call to undefined function sqlsrv_connect() in C:\inetpub\wwwroot\89.111.180.28\index.php on line 18

エラーが発生した理由と、正しい方法を教えてください。

ps: サーバーは既に再起動されています。

4

4 に答える 4

4

私はちょうどこの問題を抱えていました。やっと直りましたので、シェアさせていただきます。


問題は、sqlsrv dll をインストール (php/ext フォルダーにコピー) し、それを php.ini に追加したにもかかわらず、IIS で 'disabled' だったことです。

誰かがこの同じ問題を再び抱えている場合に備えて、ここにいくつかの段階的な手順があります. (または、将来の参考のために:))

  1. SQL Server ドライバー(.dll)をダウンロード (およびインストール) します。

    • .exe を実行してインストールし、解凍先を尋ねられたら、php 拡張フォルダーへのパスを入力します。
      • 現在の拡張ディレクトリを見つけるには、 (cmd.exe) を実行php -i | moreし、行を探しますextension_dir。(私にとっては、の4回目のプレスでしたmore)。または、 のみを含む単純な php ファイルを作成<?php phpinfo(); ?>し、ブラウザで実行します。これにより、同じ情報が得られますが、はるかに読みやすい形式になります。
  2. 拡張機能を php.ini に追加します

    • 適切な php.ini を見つけるには、php -i | moreもう一度実行して を探すLoaded Configuration Fileか、単純な php スクリプトをもう一度確認します (作成することを強くお勧めします - 時間と労力を節約できます)。そこにあるパスは、編集する必要があるファイルです。
    • 次の行を php.ini に追加して保存します。

      [PHP_SQLSRV] extention=php_sqlsrv_56_nts.dll

  3. IIS マネージャーで拡張機能を有効にする

    • スタート メニューでIIS Manager、 と入力し、Enter キーを押します。
    • 左側のサイドバーでサーバーの名前をクリックします
    • クリックPHP Manager
    • の下PHP Extensionsで、 をクリックしますEnable or Disable an Extension
    • 拡張機能が の下にない場合は、下Enabledを探しますDisabled。見つかったら、それを右クリックEnableし、表示されるコンテキスト メニューをクリックします。
  4. 動作することを確認するためのテスト

    • あなたが作成したそのphpinfo()ページを開き (あなたが作成しましたよね?)、 の下を見てくださいRegistered PHP Streamssqlsrvそのリストに表示されている場合は、設定されています。
于 2016-01-26T03:06:27.957 に答える
0

私は状況を理解しています。

PHP のバージョンは 5.4 以上を使用していたので、Windows 3.0 用の PHP ドライバーを使用しました。

この構成では、SQL 2012 のクライアント バージョンが必要でしたが、私はクライアント SQL 2008 バージョンでした。

問題が解決しました。

于 2012-12-05T08:48:51.043 に答える