yii2 通过 new 或者 findOne 返回的对象执行的数据库操作,比如 save,如何打印 SQL 语句?

yii2 通过 new 或者 findOne 返回的对象执行的数据库操作,比如 save,如何打印 SQL 语句?

我知道 find() 方法返回的对象可以用 ->createCommand()->getRawSql() 方法打印相应的 sql 语句。

但是如题的不知道,请知道的大佬指教,谢谢。

阅读 915
3 个回答

打开你的 Yii2 项目中的 config/db.php 文件

components' => [  
    'db' => [  
        'class' => 'yii\db\Connection',  
        'dsn' => 'mysql:host=localhost;dbname=mydatabase',  
        'username' => 'myusername',  
        'password' => 'mypassword',  
        // ... 其他配置 ...  
        'enableQueryLog' => true, // 开启 SQL 语句打印  
    ],  
    // ... 其他组件 ...  
],

现在,当你通过 new 或者 findOne 获取到数据库操作对象,并调用其 save 方法时,Yii2 会自动打印出执行的 SQL 语句。
你可以在 Yii2 的日志输出中查看这些 SQL 语句

方法1 在config文件里配置数据库日志,这样所有的ar执行的sql都可以看到

方法2 配置mysql的binlog日志,然后去看mysql的日志

以上都适合本地调试试用,线上的话选择开启

Yii2有Debug模块,可以很方便的查看SQL,比自己打印更灵活

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏