一鳞半甲

醉心、探索与收获
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

关于Fleaphp下SQLite的驱动程序

Posted on 2008-10-28 11:38  麦满屯  阅读(876)  评论(0编辑  收藏  举报

Fleaphp是一个简便快捷、执行效率理想、并且得到良好文档化的基于PHP语言的开发框架(Framework)。在半甲项目启动的时候,即选择Fleaphp作为快速开发框架。在研究Fleaphp时,我发现SQLite的驱动程序在某些代码下无法正确的工作。以下是导致问题的源代码:

 

Code

分析上面的源代码,我发现了以下问题:

1、  源代码中没有声明表结构。依靠Fleaphp的数据库驱动模块自动创建数据表。

2、  源代码中没有指明主键,因此,无法依靠SQLite的主键取值自增加的特性来维护主键取值的不同

3、  以上代码在执行过程中,报错:“LAST_INSERTED_ID”函数找不到。通过查找手册,发现该函数原始为从MySQL驱动程序中开始使用。但SQLite并未提供相同名称的函数。因此代码执行出错。而FleaPHP发行包中,有相关代码,只是存在Bug

要避免上述情况出现,实现定义好表结构,并指定主键就可以避免相关问题的出现。不过通过分析源代码,SQLite驱动程序中对于上述代码是可以正常支持的。因此,我对代码进行了如下修改。

 

Code

以上源代码经过测试可以满足对Sqlite数据库进行操作的目的。可以保存到文件中,放在Fleaphp发行包的db/driver目录下以sqlite.php为文件名后使用。