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

 

);

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

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

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

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

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

 

;
}
}

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

 

相关文章:

  • 2021-07-27
  • 2021-07-13
  • 2021-08-17
  • 2022-12-23
  • 2021-12-30
  • 2022-12-23
  • 2021-11-30
猜你喜欢
  • 2021-06-04
  • 2021-07-16
  • 2021-08-07
  • 2021-06-10
  • 2021-08-27
  • 2021-10-01
  • 2022-02-01
相关资源
相似解决方案