之前写了一个简单的宝塔定时执行PHP任务的文章,有一定的缺陷,今天换个其他的形式
shell直接执行PHP文件的方式
要求:
每天都要查询出当天的各个状态的订单,包括已完成,未完成,平台完成,客户完成。。。
并汇总,存进数据库,以备之后的总结统计用
第一步,创建完成能单独运行在Linux上的PHP文件
位置随意,只要后面运行此文件的时候,有固定的地址即可。
一、连接数据库
二、写原生的SQL
三、执行查询
这里需要注意,不能简单的 执行,mysqli_query()函数,PHP框架用的多了,直接查询出来的结果是数组,但是这个查询出来的是个对象,包含了很多其他的用不到的值,所以,需要用,mysqli_fetch_object()函数,获取到里面的想要的值,取其中的number,这个是想要的数据
另外,mysql_fetch_object()是返回对象格式,可以获取键值,如图
可以用mysql_fetch_row()或者mysql_fetch_assoc()获取数组格式的数据,不过都只是单行数据,要获取多行的可以用mysql_fetch_all(),虽然都是数组,但是获取的没有键值,不利于后期的数据处理,建议用对象格式的.
(另外,针对不同的版本和环境区别,有的适合用mysql_fetch_xxx,有的适合用mysqli_fetch_xxx,具体是mysql还是mysqli,根据自己实际开发环境来选择)
最后,执行插入语句
这里需要注意,datetime格式的数据,之前用框架,可以直接插入进去,但是这样会报错,所以,需要给datetime的外边链接上引号,就可以正常插入进去了
到此,PHP文件,已经完成了
后面加个判断
第二步、去Linux上测试一下
前面写PHP,声明一下,要运行的文件格式为PHP的,加个空格,然后,后面跟上此文件的位置,回车,成功,就只差一步了
第三步、去部署定时任务
把刚刚shell命令行执行的命令,直接复制到脚本内容里面就行了
执行一下,看一下日志,OK了,成功了
大工告成