Yii2 如何输出 SQL 语句? [ 2.0 版本 ]
请问如何输出连贯操作的sql语句?
比如 find()->all()
使用的什么sql语句?
最佳答案
其他 5 个回答
-
可以在网页底部的debugger看到,点击log可以看到你执行的sql语言(也就是连贯操作的sql语句);
比如在controller里面你执行$query= ReleaseForm::find()->where(['type'=>1])->all();
注:源代码是这些:$query= ReleaseForm::find()->where(['type'=>1]); $pagination = new Pagination([ 'defaultPageSize' => 5, 'totalCount' => $query->count(), ]); $property_data= $query ->offset($pagination->offset) ->limit($pagination->limit) ->all();
在网页里你点击底部的log就可以看到:
10 21:01:36.667 info yii\db\Command::query SELECT COUNT(*) FROM `releases` WHERE `type`=1 E:\web\Apache24\htdocs\basic\controllers\PropertyController.php (14) 11 21:01:36.667 info yii\db\Connection::open Opening DB connection: mysql:host=localhost;dbname=xunwu E:\web\Apache24\htdocs\basic\controllers\PropertyController.php (14) 12 21:01:36.669 info yii\db\Command::query SELECT * FROM `releases` WHERE `type`=1 LIMIT 5 E:\web\Apache24\htdocs\basic\controllers\PropertyController.php (20) 13 21:01:36.670 info yii\db\Command::query SHOW FULL COLUMNS FROM `releases` E:\web\Apache24\htdocs\basic\controllers\PropertyController.php (20) 14 21:01:36.674 info yii\db\Command::query SHOW CREATE TABLE `releases`
这样就知道你执行了什么sql语句了
共 4 条回复chenlizhun 回复于 2015-04-02 11:22 回复@myname9 要开启debug模式
@chenlizhun 开了debug,没看到啊
-
也可以不用getSql();
在updateAll这个方法上点进去:OrderMain::updateAll($update_value, $update_where);
转到这段代码:
public static function updateAll($attributes, $condition = '', $params = []) { $command = static::getDb()->createCommand(); $command->update(static::tableName(), $attributes, $condition, $params); return $command->execute(); }
再点击execute()方法进去,转到
public function execute() { $sql = $this->getSql(); $rawSql = $this->getRawSql(); Yii::info($rawSql, __METHOD__); if ($sql == '') { return 0; }
然后在这一行打个断点: $rawSql = $this->getRawSql();
这里的$rawSql 就是原生sql;
这个对于增删改查都是实用的,还是要从原理出发哦共 1 条回复不过个人还是用的是上面有个coder的方法
开启dev debug,然后URL:
http://yourDomain/debug天国星坠6 觉得很赞
myname9
注册时间:2014-10-15
最后登录:2015-05-06
在线时长:43小时31分
最后登录:2015-05-06
在线时长:43小时31分
- 粉丝2
- 金钱1936
- 威望0
- 积分2366