jianlei 发表于 2007-12-10 16:36:06

[1.5.4]为 CodeIgniter 增加 Firebird 数据库驱动

测试环境 CodeIgniter 1.5.4

Firebird/Interbase drivers for CodeIgniter
Installation Instructions:
1.Copy DB_driver.php to BASE_CODEIGNITER_DIRECTORY/system/database/
2.Create directory BASE_CODEIGNITER_DIRECTORY/system/database/drivers/ibase
3.Copy ibase*.php to BASE_CODEIGNITER_DIRECTORY/system/database/drivers/ibase/
安装方法:
1.复制DB_driver.php到BASE_CODEIGNITER_DIRECTORY/system/database/(替换)
2.建立文件夹 BASE_CODEIGNITER_DIRECTORY/system/database/drivers/ibase
3.复制ibase*.php到BASE_CODEIGNITER_DIRECTORY/system/database/drivers/ibase/
来源:
http://codeigniter.com/forums/viewthread/53191/
作者:Jeffrey Bradley

修正BUG:︶ㄣ剑雷ゅ jianlei 2007.12.10
说明:感谢effrey Bradley让我们使用CodeIgniter有了Firebird专有的驱动,
由于我喜欢使用Firebird数据库,经过几天的研究,修正了多处Bug,欢迎大家使用.

1. 数据库连接设置方法,例子如下:$active_group = "default";
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "sysdba";
$db['default']['password'] = "masterkey";
$db['default']['database'] = "ciblog";//数据库名
$db['default']['dbdriver'] = "ibase";
$db['default']['dbprefix'] = "";
$db['default']['active_r'] = TRUE;
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] =FALSE;
$db['default']['cachedir'] = "";2. 在读取字段值时,一定要使用大写,如:<?php $rs = $blog_array->row() ?>
<h1><?php echo $rs->TOPIC; ?></h1>
<p><?php echo ubb( str_replace('[::end::]' , '' , $rs->BODY) ); ?></p>
<p>Time: <?php echo $rs->BLOGTIME; ?></p>
<p>Comments: <?php echo $rs->COMMENT_TIMES; ?></p>
<p>分类: <?php echo anchor('blog/viewtopic/' . $rs->CATALOG_ID, $rs->CATALOG_NAME); ?></p>
3. 使用 BLOB 类型字段,已经可以自动转换了。
4.针对Firebird 2.0做了优化
5.修正了驱动对scaffolding支持的问题
                               2008.01.28

另外我也把论坛上的 BLOG 例子移植到了 Firebird 数据库上,供大家研究。

[ 本帖最后由 jianlei 于 2008-1-28 13:36 编辑 ]

Hex 发表于 2007-12-10 16:54:26

好东西!我先支持一下!

hd2829ily 发表于 2007-12-11 12:49:02

原创啊,支持啊

借鉴借鉴

jianlei 发表于 2007-12-11 21:22:24

看楼顶的附件吧,已经更新

[ 本帖最后由 jianlei 于 2007-12-30 19:47 编辑 ]

Hex 发表于 2007-12-11 22:05:09

是不是需要一个随时编辑帖子的权限呀?

jianlei 发表于 2007-12-12 08:14:41

能够有随时编辑的权限,那是最好了,可以减少服务器上的垃圾文件,谢谢?

moonster 发表于 2007-12-13 14:14:08

使用 BLOB 类型字段问题

3. 使用 BLOB 类型字段,目前读取数据时还有问题,请尽量避免。

这个和codeigniter没有关系,和ibase的动态链接库有关系,修正一下就可以了。

Hex 发表于 2007-12-13 14:36:22

原帖由 jianlei 于 2007-12-12 08:14 发表 http://codeigniter.org.cn/forums/images/common/back.gif
能够有随时编辑的权限,那是最好了,可以减少服务器上的垃圾文件,谢谢?

怎么设置呀?现在的设置可以编辑呀?奇怪。。。。。。。大家说怎么设置呀?

jianlei 发表于 2007-12-13 22:29:50

找到BLOB的问题了,取出BLOB值后还要“解密”,adodb是自动作了处理,处理函数如下:

      function BlobDecode( $db,$blob )
    {
      $maxblobsize = 262144;
      if(ADODB_PHPVER >= 0x5000) {
            $blob_data = ibase_blob_info($db, $blob );
            $blobid = ibase_blob_open($db, $blob );
      } else {

            $blob_data = ibase_blob_info( $blob );
            $blobid = ibase_blob_open( $blob );
      }

      if( $blob_data > $maxblobsize ) {

            $realblob = ibase_blob_get($blobid, $maxblobsize);

            while($string = ibase_blob_get($blobid, 8192)){
                $realblob .= $string;
            }
      } else {
            $realblob = ibase_blob_get($blobid, $blob_data);
      }

      ibase_blob_close( $blobid );
      return( $realblob );
      }


想在CI中也实现BLOB内容自动转换,目前还没找到办法,有知道方法的,提示一下

Hex 发表于 2007-12-14 14:24:48

adodb 里不是自动转换吗?
页: [1] 2
查看完整版本: [1.5.4]为 CodeIgniter 增加 Firebird 数据库驱动