2011-08-04 8 views
1

私は自分のLinuxボックス(ODBCを使用している)上でユーザDSNに接続することができます。codeigniterを使用してユーザーDSNに接続する方法は?

コードイグナイタを使用して接続するにはどうすればよいですか?

public function index() 
    { 

     $dsn = 'NZSQL://someuser:[email protected]/somedatabase'; 
     $this->load->database($dsn); 
     $this->db->query("SELECT * FROM Cust Limit 10"); 
     $result = $this->db->result(); 
    } 

は、だから私は私のコントローラを持っている:私も同時にODBCを使用して別のデータベースに接続する必要が

$active_group = 'default'; 
$active_record = TRUE; 

$db['default']['hostname'] = 'localhost'; 
$db['default']['username'] = 'user'; 
$db['default']['password'] = 'pass'; 
$db['default']['database'] = 'db_main'; 
$db['default']['dbdriver'] = 'mysql'; 
$db['default']['dbprefix'] = ''; 
$db['default']['pconnect'] = TRUE; 
$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; 

:私のdatabase.phpで中

私は、デフォルトのデータベースを持っています

エラーが発生します:

A Database Error Occurred

Error Number: 1146

Table 'db_main.Cust' doesn't exist

SELECT * FROM Cust Limit 10

Filename: /var/www/controllers/netezzatest.php

Line Number: 28

答えて

3

接続先の各データベースについて、Code Igniterでは新しいデータベースオブジェクトを作成する必要があります。それぞれのDBをconfigファイルに完全に構​​築し、$ this-> load-> database()を呼び出すときに名前(配列キー)で参照する必要があります。

詳細はConnecting to Multiple Databasesを参照してください。これは、各上のクエリを実行するために、次に

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

:しかし、基本的に、あなたは(各DBのオブジェクトを作成する)を接続するためにこれを使用する必要が

$DB1->query(); 
$DB1->result(); 

そして:

$DB2->query(); 
$DB2->result(); 
1

2番目のデータベースに接続するときは、オブジェクトを返す必要があります。 trueを2番目のパラメータとしてload->databaseに渡すと、dbオブジェクトが返されます。この場合

$dsn = 'NZSQL://someuser:[email protected]/somedatabase'; 
$dsnDB = $this->load->database($dsn, TRUE); 
$query = $dsnDB->query("SELECT * FROM Cust Limit 10"); 
$result = $query>result(); 

$this->dbはあなたのmysqlのDBで、$dsnDBは他のものです。

関連する問題