0

CI に基づく複数の Web サイトがあり、それらはすべて独自のデフォルト DB を使用しており、問題なく動作しています。

現在、Web サイトの 1 つが別の Web サイトの DB に接続して情報を取得する (同じサーバー上にある) が、ネイティブ DB 接続を維持するという要件があります。

次のコードを使用して、他のWebサイトDBに接続しています

$dsn = 'mysql://econnect_base_user:econnect_base_pass@localhost/econnect_base_db';
$city_db = $this->load->database($dsn, TRUE);

問題は、これによりデフォルトの DB がリセットされ、「city_db」が閉じられ、デフォルトの DB に再接続しようとしても機能しないことです (これは最もばかげたことかもしれませんが、他に考えがありません!)

助けてください。

ありがとう。

4

4 に答える 4

2

ドキュメントから:

複数のデータベースに同時に接続する必要がある場合は、次のように接続できます。

$DB1 = $this->load->database('group_one', TRUE);
$DB2 = $this->load->database('group_two', TRUE);

注:「group_one」および「group_two」という単語を、接続している特定のグループ名に変更します(または、上記のように接続値を渡すことができます)。

2番目のパラメーターをTRUE(ブール値)に設定すると、関数はデータベースオブジェクトを返します。

この方法で接続する場合、このガイド全体で使用されている構文ではなく、オブジェクト名を使用してコマンドを発行します。つまり、次のコマンドを発行するのではなく、

$this->db->query(); 
$this->db->result(); 
//etc...

代わりに以下を使用します:

$DB1->query(); 
$DB1->result();
于 2012-06-18T12:46:17.253 に答える
0

単純なphp dbのものを使用するだけです:

$other_dbh = new PDO("mysql:host=localhost;dbname=$other_db_name", $other_db_user, $other_db_pass);
foreach ($other_dbh->query('SELECT * from FOO') as $row)
    process_info($row);
于 2012-06-18T12:56:12.567 に答える