如何使用纯SQL记录CakePHP中的所有数据库更新,插入或删除?
示例:
$ this-> Car-> query('update cars set color =“red”');
答案 0 :(得分:1)
扩展您正在使用的任何数据源并覆盖_execute()
记录并传回父级的方法。
例如,假设您当前正在使用dbo_mysql。这意味着 你的db配置是这样的:
class DATABASE_CONFIG {
var $default = array(
'driver' => 'mysql',
// ...
)
}
将'driver'更改为'mysql_with_log',然后创建文件app / model / datasources / dbo / mysql_with_log.php:
<?php
require (LIBS . 'model' . DS . 'datasources' . DS . 'dbo' . DS .'dbo_mysql.php');
class DboMysqlWithLog extends DboMysql {
function _execute($sql) {
$this->log($sql);
return parent::_execute($sql);
}
}
?>
您也可以使用Cake debug kit。
此插件还可以帮助您保存SQL日志。以下是download Debug Kit的链接。