当我设置Configure::write('debug', 2);
时,Cake中的SQL错误会输出带有错误消息的完整SQL语句,如下所示:
数据库错误 错误:SQLSTATE [42000]:[Microsoft] [SQL Server Native Client 10.0] [SQL Server]','附近的语法不正确。
SQL查询:SELECT,
注意:如果要自定义此错误消息,请创建app \ View \ Errors \ pdo_error.ctp
但是,当我查看由于设置Configure::write('log', true);
而创建的默认error.log文件中的错误时,我得到了这个:
2012-03-07 15:57:53错误:[PDOException] SQLSTATE [42000]:[Microsoft] [SQL Server Native Client 10.0]
[SQL Server]','附近的语法不正确。
0 C:\ wamp \ www \ lib \ Cake \ Model \ Datasource \ DboSource.php(436):PDOStatement-> execute(Array)
如何在发生数据库错误时使CakePHP 2.0保存完整的SQL语句?我在生产中使用这个日志记录,所以我不能手动保存SQL或保留调试2。
答案 0 :(得分:2)
// In a view
echo $this->element('sql_dump');
// Elsewhere
$log = $this->Model->getDataSource()->getLog(false, false);