如何使用codeigniter连接到用户DSN? [英] How to connect to a User DSN using codeigniter?

查看:342
本文介绍了如何使用codeigniter连接到用户DSN?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



如何使用代码igniter连接?

我可以使用代码igniter连接到我的linux框上的用户DSN。

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

  $ active_group ='默认'; 
$ 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';
$ it-> load-> database($ dsn);
$ this-> db-> query(SELECT * FROM Cust Limit 10);
$ result = $ this-> db-> result();
}

我得到错误:


发生数据库错误



错误号码:1146



'db_main.Cust'不存在



SELECT * FROM Cust Limit 10



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



行号:28



解决方案

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



连接到多个数据库了解详情。但是,基本上,你需要使用这个连接(为每个数据库创建一个对象):

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

然后这将运行每个查询:

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

和:

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


I am able to connect to a User DSN on my linux box (using ODBC).

How do I get to connect using code igniter?

in my database.php I have the default database:

$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;

however I also need to simultaneously connect to another database using ODBC:

So I have in my controller:

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();
    }

I get the error:

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

解决方案

For each DB that you're connecting to, Code Igniter will require you to build a new database object. You should build each DB out fully in the config file, then reference them by name (array key) when calling $this->load->database().

See Connecting to Multiple Databases for specifics. But, basically, you need to use this to connect (creating an object for each DB):

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

Then this to run queries on each:

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

And:

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

这篇关于如何使用codeigniter连接到用户DSN?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆