0

多くのデータベースにdatabase.phpのプライマリ接続を接続する必要がありますが、問題はありません。

ただし、別の接続はモデルに含まれている必要があります

私はこのクラスを使用します

<?php
class user_model extends CI_Model {

        public function test()
        {
        $specific['hostname'] = "localhost";
        $specific['username'] = "root";
        $specific['password'] = "";
        $specific['database'] = "ci_forsyria";
        $specific['dbdriver'] = "mysql";
        $specific['dbprefix'] = "";
        $specific['pconnect'] = FALSE;
        $specific['db_debug'] = TRUE;
        $specific['cache_on'] = FALSE;
        $specific['cachedir'] = "";
        $specific['char_set'] = "utf8";
        $specific['dbcollat'] = "utf8_general_ci";

        $this->load->database($specific);

        //get data using datamapper
        $o = new db_user();
        $array = array();
        $o->where($array)->get();
        echo $num_rows = $o->result_count();
        }
}
?>

ただし、接続は機能しませんが、プライマリデータベースに接続します

エラー番号:1146テーブル'countries.ci_users'は存在しません

注:100を超える接続があるため、database.phpファイル内の別の接続を使用するつもりはありません。

4

2 に答える 2

1

CIは、接続がすでに利用可能であり、指定したパラメーターを使用していないと見なすと思います。

$this->db->close();新しい構成に接続する前に、入力してデフォルトの接続を閉じてみてください。

それ以外の場合は、2番目のパラメーターをTRUEに設定して、マニュアルで指定されている新しい構成でデータベースオブジェクトの新しいインスタンスを返す必要があります。返されたオブジェクトを使用できるはずです。

$specific_db =  $this->load->database($specific, TRUE);
于 2012-04-15T18:03:44.460 に答える
1

Repoxへのコメントへの反応として、あなたは間違いなくそれを間違って使用しているに違いありません。彼の最後の解決策はうまくいくはずです、私はそれを自分で継続的に使用しています。オブジェクトの「newdb_user()」が何であるかを示すことができますか?一般的なデータベースを使用できますか?

注:ここに終了タグを残してください。これはモデルです。

PHPコードのみを含むファイルの場合、終了タグ( "?>")は許可されません。PHPでは必要ありません。これを省略すると、応答に末尾の空白が誤って挿入されるのを防ぐことができます。

例としてこれを試してください。countriesテーブルから30個の値が返されるはずです。

<?php
class user_model extends CI_Model {
    public function test()
    {
    $specific['hostname'] = "localhost";
    $specific['username'] = "root";
    $specific['password'] = "";
    $specific['database'] = "ci_forsyria";
    $specific['dbdriver'] = "mysql";
    $specific['dbprefix'] = "";
    $specific['pconnect'] = FALSE;
    $specific['db_debug'] = TRUE;
    $specific['cache_on'] = FALSE;
    $specific['cachedir'] = "";
    $specific['char_set'] = "utf8";
    $specific['dbcollat'] = "utf8_general_ci";

    $specific_db = $this->load->database($specific, TRUE);

    $example_query = $specific_db->query('SELECT * FROM countries LIMIT 0,30')->result();

    return var_dump($example_query);
    }
}
于 2012-04-15T18:32:20.770 に答える