aqw23 发表于 2013-3-20 16:04:01

非CI正常模式调用数据库访问类(外部访问CI数据库类)

本帖最后由 aqw23 于 2013-3-20 16:09 编辑

背景:最近在使用CI做项目,有一个需求就是要使用linux定时任务来执行一个脚本文件来做定时批量删除日志(只保留近三个月日志即可)。如果自己去找mysql类库,或者用原生的mysql函数去做处理感觉有些麻烦,所以简单的加了些文件而直接使用CI的数据库访问类进行操作数据库了。

1、比如我在CI目录下加了一个tools目录,用来写php脚本做批量删除功能。
2、在tools目录下写一个扩展类db_model.php,这个类就是用来调用CI原来的数据库访问类的。
3、报错处理,当表不存在时,系统要报错,但是原来的Lang.php调用了一些方法,这些方法是要按CI正常访问方式才能使用,如果是直接在linux命令行访问是出错的,如:php ci/tools/test.php。所以这里扩展了Lang.php类。
4、扩展Lang.php类:MY_Lang.php,主要是重写了load方法,而这个方法只修改了加载语言文件的代码

5、linux下执行示例:ci/tools/test.php
代码见附件。


oott123 发表于 2013-3-20 17:23:00

0.0不是有这个吗http://codeigniter.org.cn/user_guide/general/cli.html

aqw23 发表于 2013-3-20 17:48:09

oott123 发表于 2013-3-20 17:23 static/image/common/back.gif
0.0不是有这个吗http://codeigniter.org.cn/user_guide/general/cli.html

你给的这种方式我不知道它要不要加载其它的文件,我写的是单纯的使用CI的数据库访问类,尽量的不使用CI路由规则,也就没有进入index.php,加载更多的类。不过你给的cli调用方式也值得去学习。

dickfu 发表于 2013-3-20 20:05:18

就在controller里面写就行了,又占用不了太多资源

viqecel 发表于 2013-7-12 22:17:54

有意思

dullangle 发表于 2016-3-18 17:58:27

原来官方提供了cli的访问方式。
页: [1]
查看完整版本: 非CI正常模式调用数据库访问类(外部访问CI数据库类)