0

任何人都可以帮我在codeigniter中为db2数据库创建adodb加载器。我尝试使用一些库,它适用于 oracle 数据库,但现在我对将新的 codeigniter 应用程序连接到 IBM DB2 感到困惑。这是 oracle 的 adodbloader。

    <?php if (!defined('BASEPATH')) exit('不允许直接脚本访问');

    类 Adodbloader{
        函数 Adodbloader(){
            if ( !class_exists('ADONewConnection') )
                require_once(BASEPATH.'/system/libraries/adodb/adodb.inc.php');

            $obj =& get_instance();
            $this->_init_adodb_library($obj);
        }

        函数 _init_adodb_library(&$ci) {
            $db_var = 假;
            $调试=假;

            如果(!isset($dsn)){
                // 回退到使用 CI 数据库文件
                包括(APPPATH.'配置/数据库'.EXT);
                $group = '默认';
                $dsn = 'oci8://my_dbusername:my_dbpassword@my_dbhostname/my_oracledb';
            }

            // $ci 是通过引用,指回全局实例
            $ci->adodb =& ADONewConnection($dsn);

            如果($db_var){
                // 也设置正常的 CI db 变量
                $ci->db =& $ci->adodb;
            }

            如果($调试){
                $ci->adodb->调试=真;
            }
        }
    }
    ?>

adodb for db2 中的手动连接如下所示:

    包括('adodb/adodb.inc.php');
    $dbms = 'odbc_db2';
    $db =& ADONewConnection($dbms);
    $dsn = "驱动程序={IBM db2 odbc DRIVER};数据库=MY_DBNAME;主机名=MY_DBHOST;端口=50000;协议=TCPIP;"."uid=MYDBUSERNAME;pwd=MY_DBPASSWORD";
    $db->连接($dsn);

我现在的问题是,如何使用该手动 adodb db2 连接与 codeigniter 集成,以便我可以在我的所有应用程序模型上使用变量 $db。感谢所有给我解决问题的人;)

4

1 回答 1

0

我也尝试过这样做,但从 CI 文档看来,您无法覆盖、扩展或替换数据库类。

请参阅此页面:http ://ellislab.com/codeigniter/user-guide/general/creating_libraries.html

当我单步执行代码时,/system/database/DB.php 中似乎有很多硬编码的路径和类名。

不过,我很想被证明是错误的。

于 2013-05-07T16:00:20.773 回答