CodeIgniter 中英文搜索引擎:
返回列表 发帖

ci如何 获得config/database.php里的配置的配置信息

RT
分析了一个database/DB.php

DB.php中获得变量的方式都是include进去然后处理的。

所以ci 获取db中配置信息不能load 也只能include来处理

或者把自己的配置信息写到myconfig.php ,自定义的file中,然后load进来!

看大家有没有更好的方法 来获得database.php的配置;

你获取 db 的配置做什么用?

PS: 貌似 $config 是全局变量,你可以直接使用吧?
QQ: 49489680
MSN: zhaochang_tj AT hotmail DOT com

TOP

你获取 db 的配置做什么用?

PS: 貌似 $config 是全局变量,你可以直接使用吧?
Hex 发表于 2009-7-1 17:14


写数据库扩展的自定义类,ci的oracle驱动问题很大,而且不支持clob操作;

$config是全局变量?config也需要$this->config->item('configName');

看来只能这样了
$this->load->library('oci');
$this->config->load('myconfig');
$this->oci->conn($this->config->item('dbname'),$this->config->item('dbpasswd'));

$this->oci->get();
……

TOP

如果你的数据库类都是自己做的,完全可以不用 CI 的数据库配置。另起炉灶吧。
QQ: 49489680
MSN: zhaochang_tj AT hotmail DOT com

TOP

如果你的数据库类都是自己做的,完全可以不用 CI 的数据库配置。另起炉灶吧。
Hex 发表于 2009-7-1 17:27


也只能这样做;

TOP

写数据库扩展的自定义类,ci的oracle驱动问题很大,而且不支持clob操作;

$config是全局变量?config也需要$this->config->item('configName');

看来只能这样了
$this->load->library('oci');
$this->config->lo ...
xian366 发表于 2009-7-1 17:24

这样就变成赤果果的db直连了,为了美观和潮还是封装好吧

TOP

这样就变成赤果果的db直连了,为了美观和潮还是封装好吧
visvoy 发表于 2009-7-1 18:23


你的意思是如何封装?

TOP

百毒或骨骼搜索“类封装”

TOP

本帖最后由 xian366 于 2009-7-2 10:21 编辑
百毒或骨骼搜索“类封装”
visvoy 发表于 2009-7-2 09:43

呵呵,不明白你的意思是什么,何谓”封装类“

不过现在已经是实现了类似activeRecord的操作方法,

$this->oci->select('id,name,title')->where('id < 110')->from('test2')->limit(2,5)->get();

考虑到与Oci与oci更低的耦合,能够在别的框架中使用,别的框架中很很少支持CLOB操作,CI的OCI驱动是基于php4的。

$this->oci->conn();

获取资源可以省略,直接在library初始化中获取资源对象,就需要
include(APPPATH.'config/database'.EXT);
...
$params = $db[$active_group];
......

CI/database/DB.php就是这样做的。
如果这样,重用性就差了,得不偿失,而且需要在初始化的时候获取资源标识。
这样在别的框架中plugin进去;

现在正考虑$this->oci->insert();$this->oci->where()->update 方法支持CLOB,怎么对象绑定,
由于CLOB、BLOB和普通的insert update不同,怎么才能和active record的操作更小的差别来实现,更简单的大数据块的操作!

TOP

本帖最后由 xian366 于 2009-7-2 10:35 编辑

现在打算这样
$data=array(
    'name'=>'tester',
    'title'=>'this is a test',
    'comments'=>array('CLOB'=>yourBlobData)
);

$this->oci->insert('yourtablename',$data);


这样看合理不?大家有没有更好的方法,

或者这样:
$data=array(
    'name'=>'tester',
    'title'=>'this is a test',
    'comments'=>array('CLOB','yourBlobData')
);

$this->oci->insert('yourtablename',$data);


generated SQL:

insert into test2 (name,tittle,comments) values ('tester','this is a test!',EMPTY_CLOB()) RETURNING comments INTO :myclob

TOP

返回列表