当前位置:K88软件开发文章中心网站服务器框架ThinkPHP → 文章内容

模型调试

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-26 15:34:27

由 AdairSweet 创建, 最后一次修改 2016-02-24 调试执行的SQL语句在模型操作中 ,为了更好的查明错误,经常需要查看下最近使用的SQL语句,我们可以用getLastsql方法来输出上次执行的sql语句。例如:$User = M("User"); // 实例化User对象$User->find(1);echo $User->getLastSql();// 3.2版本中可以使用简化的方法echo $User->_sql();输出结果是 SELECT * FROM think_user WHERE id = 1并且每个模型都使用独立的最后SQL记录,互不干扰,但是可以用空模型的getLastSql方法获取全局的最后SQL记录。$User = M("User"); // 实例化User模型$Info = M("Info"); // 实例化Info模型$User->find(1);$Info->find(2);echo M()->getLastSql();echo $User->getLastSql();echo $Info->getLastSql();输出结果是SELECT * FROM think_info WHERE id = 2SELECT * FROM think_user WHERE id = 1SELECT * FROM think_info WHERE id = 2getLastSql方法只能获取最后执行的sql记录,如果需要了解更多的SQL日志,可以通过查看当前的页面Trace或者日志文件。注意:Mongo数据库驱动由于接口的特殊性,不存在执行SQL的概念,因此SQL日志记录功能是额外封装实现的,所以出于性能考虑,只有在开启调试模式的时候才支持使用getLastSql方法获取最后执行的SQL记录。调试数据库错误信息在模型操作中,还可以获取数据库的错误信息,例如:$User = M("User"); // 实例化User对象$result = $User->find(1);if(false === $result){ echo $User->getDbError();}CURD操作如果返回值为false,表示数据库操作发生错误,这个时候就需要使用模型的getDbError方法来查看数据库返回的具体错误信息。

模型调试