编写SQL不可能百分百正确,因此数据库调试技巧非常有必要。PESCMS在这方便为大家提供了良好的调试方式。在调试网站的错误时,请检查是否开启了调试模式。
自动输出SQL
当开启了调试模式后,当程序执行SQL出现异常或者某些致命错误,进入报错页后,在错误页面下方将会显示最后执行的SQL语句。如下图所示。
上图除了给出执行的SQL外,还给出详情的错误明细,非常方便大家进行调试。
如果你设置了自己的错误页面,若没有保留对应的输出信息,将无法显示最后执行的SQL语句。
打印SQL
PESCSM为了方便开发者对执行的SQL语句调试,提供了手动调试方法,getLastSql。具体如下:
- <?php
- $this->db('user')->where('user_id = :user_id')->find(array('user_id' => '1'));
- echo $this->db()->getLastSql;
- //SELECT * FROM pes_user WHERE user_id = 1 LIMIT 1;
getLastSql仅用于获取程序最后一次执行的SQL语句,同时,getLastSql输出的SQL语句会将预处理的占位符替换为对应的值,若输出的SQL语句还存在占位符,表示本SQL语句在占位符上使用存在问题。