xian366 发表于 2009-7-1 16:55:58

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

RT
分析了一个database/DB.php

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

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

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

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

Hex 发表于 2009-7-1 17:14:18

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

PS: 貌似 $config 是全局变量,你可以直接使用吧?

xian366 发表于 2009-7-1 17:24:10

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

PS: 貌似 $config 是全局变量,你可以直接使用吧?
Hex 发表于 2009-7-1 17:14 http://codeigniter.org.cn/forums/images/common/back.gif

写数据库扩展的自定义类,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();
……

Hex 发表于 2009-7-1 17:27:30

如果你的数据库类都是自己做的,完全可以不用 CI 的数据库配置。另起炉灶吧。

xian366 发表于 2009-7-1 18:15:28

如果你的数据库类都是自己做的,完全可以不用 CI 的数据库配置。另起炉灶吧。
Hex 发表于 2009-7-1 17:27 http://codeigniter.org.cn/forums/images/common/back.gif

也只能这样做;

visvoy 发表于 2009-7-1 18:23:36



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

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

看来只能这样了
$this->load->library('oci');
$this->config->lo ...
xian366 发表于 2009-7-1 17:24 http://codeigniter.org.cn/forums/images/common/back.gif
这样就变成赤果果的db直连了,为了美观和潮还是封装好吧

xian366 发表于 2009-7-2 09:40:12


这样就变成赤果果的db直连了,为了美观和潮还是封装好吧
visvoy 发表于 2009-7-1 18:23 http://codeigniter.org.cn/forums/images/common/back.gif

你的意思是如何封装?

visvoy 发表于 2009-7-2 09:43:04

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

xian366 发表于 2009-7-2 10:17:20

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

百毒或骨骼搜索“类封装”
visvoy 发表于 2009-7-2 09:43 http://codeigniter.org.cn/forums/images/common/back.gif
呵呵,不明白你的意思是什么,何谓”封装类“

不过现在已经是实现了类似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的操作更小的差别来实现,更简单的大数据块的操作!

xian366 发表于 2009-7-2 10:33:42

本帖最后由 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
页: [1] 2
查看完整版本: ci如何 获得config/database.php里的配置的配置信息