1

如何在 CakePHP 中使用纯 SQL 记录所有数据库更新、插入或删除?

例子:

$this->Car->query('更新汽车设置颜色 = "red" ');

4

1 回答 1

1

扩展您正在使用的任何数据源并覆盖该_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 日志。这是下载调试工具包的链接。

于 2012-08-13T12:14:26.927 回答