spt119 发表于 2009-12-13 17:33:18

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

嵌入式sqlite数据库对于小型PHP应用来说,是非常适合而且极为方便的,而且在小型应用方面,sqlite的功能与性能相比mysql来说,并不逊色,相反有很多地方,还稍有胜出。
php在5.0的版本中就已经潜入了对嵌入式sqlite的支持。使用phpinfo工具可以有效的判断当前服务器环境是否支持sqlite数据库:
1.PDO支持PDO supportenabledPDO drivers sqlite, sqlite2
2.pdo_sqlite开启PDO Driver for SQLite 3.xenabledPECL 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 supportenabledPECL 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 Valuesqlite.assoc_case00
php5中默认支持的sqlite版本是2.8.17。这个版本已经支持了事物transaction功能,完全满足常用的PHP开发。
在CI中使用sqlite,需要在system/application/config/database.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!

文明用语 发表于 2009-12-13 21:00:31

CI默认支持sqlite哪个版本?
sqlite2还是sqlite3呢?

spt119 发表于 2009-12-15 16:29:29

不是CI支持sqlite,是PHP支持。
在CI 中使用sqlite,必须考虑php本身。现在sqlite 3.0已经发布,但对于小型应用来说,2.0和3.0都可以。

final 发表于 2009-12-31 13:47:22

指定路径后显示 file is encrypted or is not a database

lamtin 发表于 2009-12-31 15:08:09

一般企业站 sqlite 2.8 够用了...

zfm1988 发表于 2011-1-5 22:27:37

呵呵,支持

jhucn 发表于 2011-5-12 20:12:42

感谢共享
页: [1]
查看完整版本: 嵌入式sqlite数据库在CI中的配置与使用