如何在 CakePHP 中使用纯 SQL 记录所有数据库更新、插入或删除?
例子:
$this->Car->query('更新汽车设置颜色 = "red" ');
扩展您正在使用的任何数据源并覆盖该_execute()
方法以记录并传递回父级。
例如,假设您当前正在使用 dbo_mysql。这意味着您的数据库配置是这样的:
class DATABASE_CONFIG {
var $default = array(
'driver' => 'mysql',
// ...
)
}
因此将“驱动程序”更改为“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 调试工具包。
该插件还将帮助您保存 SQL 日志。这是下载调试工具包的链接。