2011-08-04 4 views
1

리눅스 상자 (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

연결하려는 각 DB에 대해 코드 이그니 저는 새로운 데이터베이스 개체를 만들어야합니다. config 파일에서 각 DB를 완전히 빌드 한 다음 $ 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

두 번째 데이터베이스에 연결할 때 개체를 사용할 수 있도록 개체를 반환해야합니다. true을 두 번째 매개 변수로 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는 DB 사용자의 MySQL을, 그리고 $dsnDB 다른 하나입니다.