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

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

[复制链接]
发表于 2013-3-20 16:04:01 | 显示全部楼层 |阅读模式
本帖最后由 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方法,而这个方法只修改了加载语言文件的代码
未命名.jpg
5、linux下执行示例:ci/tools/test.php
代码见附件。


files.zip

40.89 KB, 下载次数: 28

发表于 2013-3-20 17:23:00 | 显示全部楼层
 楼主| 发表于 2013-3-20 17:48:09 | 显示全部楼层
oott123 发表于 2013-3-20 17:23
0.0不是有这个吗http://codeigniter.org.cn/user_guide/general/cli.html

你给的这种方式我不知道它要不要加载其它的文件,我写的是单纯的使用CI的数据库访问类,尽量的不使用CI路由规则,也就没有进入index.php,加载更多的类。不过你给的cli调用方式也值得去学习。
发表于 2013-3-20 20:05:18 | 显示全部楼层
就在controller里面写就行了,又占用不了太多资源
发表于 2013-7-12 22:17:54 | 显示全部楼层
有意思
发表于 2016-3-18 17:58:27 | 显示全部楼层
原来官方提供了cli的访问方式。

本版积分规则