3

WebサーバーにphpBugTrackerをインストールしようとしています。インストール画面でデータベース接続をテストしようとすると、「DBテストの失敗... DBエラー:拡張機能が見つかりません」というエラー画面が表示されます。次の関数からエラーがスローされています。

function test_database(&$params, $testonly = false) {
    // PEAR::DB
    define('PEAR_PATH', ''); // Set this to '/some/path/' to not use system-wide PEAR
    // define('PEAR_PATH', 'inc/pear/'); // use a locally installed Pear (phpBT v0.9.1)
    if (!@include_once(PEAR_PATH.'DB.php')) {
        $error_message = translate("Failed loading Pear:DB");
        $error_info = translate("Please check your Pear installation and the defined PEAR_PATH in install.php");
        $error_info .= " <a href='http://pear.php.net/'>http://pear.php.net/</a>";
        include('templates/default/install-dbfailure.html');
        exit;
    }
    // execution gets this far without a problem...
    $dsn = array(
        'phptype' => $params['db_type'],
        'hostspec' => $params['db_host'],
        'database'  => $params['db_database'],
        'username'  => $params['db_user'],
        'password'  => $params['db_pass']
        );
    $db = DB::Connect($dsn);

    // Simple error checking on returned DB object to check connection to db
    if (DB::isError($db)) {
       // $db go boom...
        $error_message = isset($db->message) ? $db->message : '';
        $error_info = isset($db->user_info) ? $db->user_info : '';
        include('templates/default/install-dbfailure.html');
        exit;
    } else {
        if ($testonly) {
            include('templates/default/install-dbsuccess.html');
            exit;
        } else {
            return $db;
        }
    }
}

MySQLバージョン5.0.45、PHPバージョン4.47を使用しており、PEAR::DBバージョン1.7.6が安定しています。使用しているデータベースに、別の方法で作成したログインで接続できることをすでに確認しました。どのモジュールがインストールされているかについては、ホスティング会社に翻弄されています。

エラーの原因について何か考えはありますか?

編集: db_typeは「mysqli」に設定されています。タイプとして「mysql」を使用すると、代わりに「接続に失敗しました」エラーが発生します。

4

2 に答える 2

3

さて、私はかなりばかげているように感じますが、MySQL へのパスはこの特定のサーバーでは異なり、localhost を想定していました。これは、mysql と mysqli とは何の関係もありませんでした。パスを修正し、問題なく接続しました。

于 2009-08-18T20:40:14.600 に答える
2

db_type使用している拡張機能がインストールされ、アクティブ化されていることを phpinfo() で確認します。おそらく、「mysqli」を試しているのに、「 mysql(「i」なし)db_typeを使用する必要がありますか?

MySQL iは、デフォルトでは PHP4 に付属していません。

于 2009-03-20T21:24:21.170 に答える