[1.5.4]为 CodeIgniter 增加 Firebird 数据库驱动
测试环境 CodeIgniter 1.5.4Firebird/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 编辑 ] 好东西!我先支持一下!
原创啊,支持啊
借鉴借鉴 看楼顶的附件吧,已经更新[ 本帖最后由 jianlei 于 2007-12-30 19:47 编辑 ] 是不是需要一个随时编辑帖子的权限呀? 能够有随时编辑的权限,那是最好了,可以减少服务器上的垃圾文件,谢谢?
使用 BLOB 类型字段问题
3. 使用 BLOB 类型字段,目前读取数据时还有问题,请尽量避免。这个和codeigniter没有关系,和ibase的动态链接库有关系,修正一下就可以了。 原帖由 jianlei 于 2007-12-12 08:14 发表 http://codeigniter.org.cn/forums/images/common/back.gif
能够有随时编辑的权限,那是最好了,可以减少服务器上的垃圾文件,谢谢?
怎么设置呀?现在的设置可以编辑呀?奇怪。。。。。。。大家说怎么设置呀? 找到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内容自动转换,目前还没找到办法,有知道方法的,提示一下 adodb 里不是自动转换吗?
页:
[1]
2