Php 如何使用codeigniter连接到用户DSN?

Php 如何使用codeigniter连接到用户DSN?,php,codeigniter,odbc,netezza,Php,Codeigniter,Odbc,Netezza,我能够连接到linux设备上的用户DSN(使用ODBC) 如何使用代码点火器连接 在my database.php中,我有默认数据库: $active_group = 'default'; $active_record = TRUE; $db['default']['hostname'] = 'localhost'; $db['default']['username'] = 'user'; $db['default']['password'] = 'pass'; $db['default'][

我能够连接到linux设备上的用户DSN(使用ODBC)

如何使用代码点火器连接

在my database.php中,我有默认数据库:

$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;
但是,我还需要使用ODBC同时连接到另一个数据库:

因此,我的控制器中有:

public function index()
    { 

         $dsn = 'NZSQL://someuser:password@host/somedatabase';
         $this->load->database($dsn);
         $this->db->query("SELECT * FROM Cust Limit 10");
         $result = $this->db->result();
    }
我得到一个错误:

发生数据库错误

错误号码:1146

表“db_main.Cust”不存在

从Cust Limit 10中选择*

文件名:/var/www/controllers/netezzatest.php

电话号码:28


对于要连接到的每个DB,CodeIgniter将要求您构建一个新的数据库对象。您应该在配置文件中完全构建每个DB,然后在调用$this->load->database()时按名称(数组键)引用它们

有关详细信息,请参阅。但是,基本上,您需要使用它来连接(为每个DB创建一个对象):

然后执行以下操作以对每个对象运行查询:

$DB1->query();
$DB1->result();
以及:


对于要连接到的每个DB,CodeIgniter将要求您构建一个新的数据库对象。您应该在配置文件中完全构建每个DB,然后在调用$this->load->database()时按名称(数组键)引用它们

有关详细信息,请参阅。但是,基本上,您需要使用它来连接(为每个DB创建一个对象):

然后执行以下操作以对每个对象运行查询:

$DB1->query();
$DB1->result();
以及:


当连接到第二个数据库时,您需要让它返回对象,以便您可以使用它。将
true
作为第二个参数传递给
load->database
将返回一个db对象

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

在这种情况下,
$this->db
是您的mysql数据库,
$dsnDB
是另一个数据库。

连接到第二个数据库时,需要让它返回对象,以便您可以使用它。将
true
作为第二个参数传递给
load->database
将返回一个db对象

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

在本例中,
$this->db
是您的mysql数据库,
$dsnDB
是另一个数据库。

如果我的密码包含“@”怎么办?@alfian5229如果我的密码包含“@”怎么办?@alfian5229