用户
 找回密码
 入住 CI 中国社区
搜索
查看: 8865|回复: 6
收起左侧

嵌入式sqlite数据库在CI中的配置与使用

[复制链接]
发表于 2009-12-13 17:33:18 | 显示全部楼层 |阅读模式
嵌入式sqlite数据库对于小型PHP应用来说,是非常适合而且极为方便的,而且在小型应用方面,sqlite的功能与性能相比mysql来说,并不逊色,相反有很多地方,还稍有胜出。
php在5.0的版本中就已经潜入了对嵌入式sqlite的支持。使用phpinfo工具可以有效的判断当前服务器环境是否支持sqlite数据库:
1.PDO支持
PDO supportenabled
PDO drivers sqlite, sqlite2

2.pdo_sqlite开启
PDO Driver for SQLite 3.xenabled
PECL Module version 1.0.1 $Id: pdo_sqlite.c,v 1.10.2.6.2.2 2007/03/23 14:30:00 wez Exp $
SQLite Library 3.3.17undefined

3.SQLite版本
SQLite supportenabled
PECL Module version 2.0-dev $Id: sqlite.c,v 1.166.2.13.2.9 2007/05/19 17:58:22 iliaa Exp $
SQLite Library 2.8.17
SQLite Encoding iso8859

DirectiveLocal ValueMaster Value
sqlite.assoc_case00

php5中默认支持的sqlite版本是2.8.17。这个版本已经支持了事物transaction功能,完全满足常用的PHP开发。
在CI中使用sqlite,需要在system/application/config/database.php中作出调整。代码如下:
PHP复制代码
$active_group = "default";
$active_record = TRUE;
 
$db['default']['hostname'] = "";
$db['default']['username'] = "";
$db['default']['password'] = "";
$db['default']['database'] = realpath("./attachment/yjyx.sdb");
$db['default']['dbdriver'] = "sqlite";
$db['default']['dbprefix'] = "y_";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";
 
复制代码

注意,一定要使用realpath函数指定sqlite数据库文件在站点中的实际位置。而且在CI中(1.7.2版本)中,支持sqlite的扩展名为“sdb”,不是“db”、“db2”等。
enjoy it!

评分

参与人数 1威望 +5 收起 理由
Hex + 5 我很赞同

查看全部评分

发表于 2009-12-13 21:00:31 | 显示全部楼层
CI默认支持sqlite哪个版本?
sqlite2还是sqlite3呢?
 楼主| 发表于 2009-12-15 16:29:29 | 显示全部楼层
不是CI支持sqlite,是PHP支持。
在CI 中使用sqlite,必须考虑php本身。现在sqlite 3.0已经发布,但对于小型应用来说,2.0和3.0都可以。
发表于 2009-12-31 13:47:22 | 显示全部楼层
指定路径后显示 file is encrypted or is not a database
发表于 2009-12-31 15:08:09 | 显示全部楼层
一般企业站 sqlite 2.8 够用了...
发表于 2011-1-5 22:27:37 | 显示全部楼层
呵呵,支持
发表于 2011-5-12 20:12:42 | 显示全部楼层
感谢共享

本版积分规则