0

次のように実行している別のmysqlデータベースに接続する必要があります

    $dsn = "{$dbdriver}://$vars[username]:$vars[password]@$vars[hostname]/$vars[database]";

    $db2 = $this->EE->load->database($dsn, true);
    $res = $db2->from('categories')->get()->result_array();

しかし、エラーメッセージが表示されますFatal error: Call to a member function result_array() on a non-object

これはサードパーティのスクリプトであるため、db接続はすでに早期に確立されています。次に、そのスクリプトは別のデータベースに接続する必要がありますが、最初のデータベース接続はすでに作成されています

$dsn正しいデータが含まれています。なぜこのエラーが発生するのですか?ありがとう

4

3 に答える 3

0

2番目のデータベースのパラメータも書き込みますconfid/database.php

$db['second_db']['hostname'] = 'localhost'; 
$db['second_db']['username'] = 'foo'; 
...

$db2 = $this->EE->load->database('second_db', true);
于 2012-04-04T15:30:39.617 に答える
0

codeigniterのユーザーガイドを読むと、答えが簡単に見つかります。見出しは

複数のデータベースへの接続

https://www.codeigniter.com/user_guide/database/connecting.html

于 2012-04-10T05:49:19.407 に答える
0

私はそれを理解しました。クエリには追加のパラメータが含まれている必要がdb_debug=1あるため、dsn文字列は次のようになります。

$dsn = "mysql://$vars[username]:$vars[password]@$vars[hostname]/$vars[database]?db_debug=1";
于 2012-04-11T14:31:29.030 に答える