當前位置:首頁 » 編程語言 » yii列印sql語句

yii列印sql語句

發布時間: 2023-12-04 04:34:44

A. yii2.0獲取到最後一條執行的sql怎麼看

這個有很多種方法

1. yii有提供一個getRawSql方法 比如說一個查詢

php">$query=User::find();
$query->select(['username','age'])->where(['id'=>1)->one();

echo$query->createCommand()->getRawSql();//輸出sql語句

2.可開啟yii2的debug模塊,這個功能很強大,在裡面可以查到當前頁面所有的sql信息,具體配置方法自行網路,網上太多這個配置了

3.查找Yii源碼 隨便找個模型調用原生的方法 比如 User::updateAll 方法,通過編輯器定位到updateAll方法的源碼 你會發現下面一段代碼

publicstaticfunctionupdateAll($attributes,$condition='',$params=[])
{
$command=static::getDb()->createCommand();
$command->update(static::tableName(),$attributes,$condition,$params);

return$command->execute();
}

繼續定位execute方法

publicfunctionexecute()
{
$sql=$this->getSql();
$rawSql=$this->getRawSql();

Yii::info($rawSql,__METHOD__);
if($sql==''){
return0;
}

$this->prepare(false);
$token=$rawSql;
try{
Yii::beginProfile($token,__METHOD__);

$this->pdoStatement->execute();
$n=$this->pdoStatement->rowCount();

Yii::endProfile($token,__METHOD__);

$this->refreshTableSchema();

return$n;
}catch(Exception$e){
Yii::endProfile($token,__METHOD__);
throw$this->db->getSchema()->convertException($e,$rawSql);
}
}

方法里$rawSql就是最原生要執行的sql拉,在這里打斷點輸出就ok

個人推薦第二種方法,最方法最高效,具體配置方法自己網路,很簡單!

B. yii框架save時候 如何列印sql

在config/main.php中

'components'=>array(

'db'=>array(

'enableParamLogging' => true,//增加這行
),

'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CFileLogRoute',
'levels'=>'trace, info error, warning', //日誌標准增加trace, info
),
),
),

)

在你的application.log中可以直接查看, 另外一種方法,也是最方便的就是安裝debugtoolbar擴展,開發必備.

C. yiisave怎麼把sql打出來

1. 判斷所要保存的實例是否已處於持久化狀態,如果不是,則將其置入緩存

2. 根據所要保存的實例計劃一條insert sql語句,注意只是計劃,並不執行;

3. 事務提交時執行之前所計劃的insert語句;

將tx.commit()換成session.flush,此時控制太列印出了insert語句,但是資料庫中並沒有添加新的記錄;

D. Yii2框架操作資料庫的方法分析【以mysql為例】

本文實例講述了Yii2框架操作資料庫的方法。分享給大家供大家參考,具體如下:
准備資料庫
DROP
TABLE
IF
EXISTS
`pre_user`;
CREATE
TABLE
`pre_user`(
`id`
int(11)
AUTO_INCREMENT
PRIMARY
KEY,
`username`
varchar(255)
NOT
NULL,
`password`
varchar(32)
NOT
NULL
DEFAULT
'',
`password_hash`
varchar(255)
NOT
NULL
DEFAULT
'',
`email`
varchar(255)
NOT
NULL
DEFAULT
'',
`status`
smallint(6)
NOT
NULL
DEFAULT
10,
`created_at`
smallint(6)
NOT
NULL
DEFAULT
0,
`updated_at`
smallint(6)
NOT
NULL
DEFAULT
0
)ENGINE=InnoDB
DEFAULT
CHARSET=utf8mb4;
配置連接
config\db.php
<?php
return
[
'class'
=>
'yii\db\Connection',
'dsn'
=>
'mysql:host=localhost;dbname=yii2',
'username'
=>
'root',
'password'
=>
'root',
'charset'
=>
'utf8mb4',
'tablePrefix'
=>
'pre_'
];
查看資料庫連接是否成功
控制器里列印:
var_mp(\Yii::$app->db);
怎麼執行SQL語句?
增刪改
//
接收表單的數據
$username
=
'jack';
$sql
=
"INSERT
INTO
{{%user}}
(username,status)
VALUES
(:username,:status)";
//
返回受影響行數
$row
=
\Yii::$app->db->createCommand($sql,['username'=>$username,'status'=>8])->execute();
//
獲取自增ID
echo
\Yii::$app->db->getLastInsertID();
查詢
$sql
=
"SELECT
*
FROM
{{%user}}
WHERE
id>:id";
//
查詢結果是一個二維數組
$userArr
=
\Yii::$app->db->createCommand($sql,['id'=>1])->queryAll();
//
如果要查詢一個
$user
=
\Yii::$app->db->createCommand($sql,['id'=>1])->queryOne();
//
如果要返回單值
//
例如
select
count(*)語句
$count
=
\Yii::$app->db->createCommand($sql,['id'=>1])->queryScalar();
echo
$count;
更多關於Yii相關內容感興趣的讀者可查看本站專題:《Yii框架入門及常用技巧總結》、《php優秀開發框架總結》、《smarty模板入門基礎教程》、《php面向對象程序設計入門教程》、《php字元串(string)用法總結》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》
希望本文所述對大家基於Yii框架的PHP程序設計有所幫助。
您可能感興趣的文章:Yii2.0高級框架資料庫增刪改查的一些操作Yii2——使用資料庫操作匯總(增刪查改、事務)Yii2資料庫操作常用方法小結Yii2框架實現資料庫常用操作總結Yii2實現跨mysql資料庫關聯查詢排序功能代碼Yii+MYSQL鎖表防止並發情況下重復數據的方法Yii
連接、修改
MySQL
資料庫及phpunit
測試連接Yii實現MySQL多資料庫和讀寫分離實例分析Yii操作資料庫實現動態獲取表名的方法Yii操作資料庫的3種方法

E. yii2.0 怎麼列印自動生成的創建sql語句

在config/main.php中

'components'=>array(

'db'=>array(

'enableParamLogging' => true,//增加這行
),

'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CFileLogRoute',
'levels'=>'trace, info error, warning', //日誌標准增加trace, info
),
),
),

)

在你的application.log中可以直接查看, 另外一種方法,也是最方便的就是安裝debugtoolbar擴展,開發必備.

F. yii能直接輸出sql語句嗎

yii何輸出具體的查詢的sql語句:

java">$query=User::find()->where(['id'=>[1,2,3,4])->select(['username'])

//輸出SQL語句

$commandQuery=clone$query;
echo$commandQuery->createCommand()->getRawSql();$users=$query->all();
熱點內容
android手機裝linux 發布:2024-12-01 00:35:14 瀏覽:1
php模塊配置 發布:2024-12-01 00:30:00 瀏覽:95
九成腳本 發布:2024-12-01 00:23:33 瀏覽:815
存儲內存和運行內存的區別 發布:2024-12-01 00:03:39 瀏覽:253
編譯狀態圖原理 發布:2024-11-30 23:54:22 瀏覽:738
谷歌搜索緩存伺服器地址 發布:2024-11-30 23:38:59 瀏覽:503
箍筋加密原因 發布:2024-11-30 23:33:38 瀏覽:416
千兆路由器有哪些配置 發布:2024-11-30 23:33:36 瀏覽:411
產品配置具體指哪些 發布:2024-11-30 23:28:21 瀏覽:16
apt編譯環境 發布:2024-11-30 23:28:12 瀏覽:382