前面我们知道TP5对于数据可的查询可以通过查询构建器之类的方法进行,但是本质上说不管采用什么方法进行数据库的操作,最终都会转化为原生的sql语言进行数据库的操作。
如果采用非原生sql语言进行数据库的操作,开发者怎样得到这种方法对应的原生sql语言呢?这个对项目代码的调试应该有意义。
TP5提供了两种方法:
1、fetchsql()方法,
$result = Db::table('banner_item')
->fetchSql()
-> where(function ($query)use ($id){
$query->where ('banner_id','=',$id);})
->select();
这样编写代码,最终不执行数据库操作方法,只是返回这个操作方法对应的原生sql语句;
2、记录sql日志:
可以采用记录sql日志的方法进行原生sql语句的记录,具体方法如下:
1、确保database.php里面的 'debug' =>true;
2、确保config.php里面的 'debug' =>true;
3、config.php里面的log字段做如下设置:
'log' => [ 'type' > 'file',
'path' => LOG_PATH,
'level' => ['sql'],],//可以确保存储在log_path路径下面的日志文件里面有对应的原生sql语句。
网友评论