2

MSSQL データベースに接続する Web アプリに取り組んでいます。以前は問題なくデータベースに接続できていましたが、sqlsrv_driver ファイルに小さな変更を加えました。以下のエラーが発生し、変更を元のファイルにロールバックしましたが、まだ問題があります。

関連するMSドライバーがインストールされていること、正しいポート番号が使用されていることなどを確認しましたが、次のエラーが返されます:

Unable to connect to your database server using the provided settings.
Filename: D:...\system\database\DB_driver.php
Line Number: 124  

これに加えて、sqlsrv_connect 関数を介して codeigniter の外側に接続しました。エラーなしで成功した接続。

このエラーが発生するのはなぜですか?

4

3 に答える 3

1

Driver sqlsrv にはバグがあります。開ける/system/database/drivers/sqlsrv/sqlsrv_driver.php

構成で許可するには、次の行をpconnect変更します89

$this->db_connect(TRUE);

return $this->db_connect(TRUE);

affected_rows正しく使用したい場合は、行を次274から変更してください

return @sqlrv_rows_affected($this->conn_id);

return @sqlsrv_num_rows($this->result_id);

affected_rows他の場所に投稿された修正方法の複数の提案を見ましたが、_execute使用しないように変更するScrollableと、セッションの検証にも sqlsrv を使用している場合、保存されたセッションが壊れます。

于 2013-12-26T15:38:51.910 に答える
0

この問題を解決しました。そして、Microsoft Azure でホストされている MSSQL に接続していました。

インターネットでいくつかの調査作業を行った後、私が従った手順は次のとおりです。

データベース.cfg:

$db['default']['hostname'] = 'XXXXXXX.database.windows.net';
$db['default']['username'] = 'username';
$db['default']['password'] = 'password';
$db['default']['database'] = 'databasename';
$db['default']['dbdriver'] = 'sqlsrv';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

主に、適切に構成する必要がある dbdriver、pcconnect、およびホスト名です。残りは共通です。Azure データベースの詳細からホスト名を取得します。

また、DB ドライバーに問題があると聞いたので、いくつかのシステム ファイルも修正しました。

システム/データベース/ドライバー/sqlsrv/sqlsrv_driver.php

function db_pconnect()
    {
        //$this->db_connect(TRUE);
        return $this->db_connect(TRUE);
    }

function affected_rows()
{
    //return @sqlrv_rows_affected($this->conn_id);
    return @sqlsrv_num_rows($this->result_id);
}

データベースに接続し、データベース アプリケーションを作成することができました。

困っている人を助けることを願っています:)

于 2014-12-22T07:24:03.687 に答える