當前位置:首頁 » 編程語言 » yii輸出sql

yii輸出sql

發布時間: 2022-08-11 19:21:19

Ⅰ Yii調試查看執行sql語句的方法

本文實例講述了Yii調試查看執行SQL語句的方法。分享給大家供大家參考,具體如下:
開戶debug
修改配置文件
:protected/config/main.php,
'log'
=>
array(
'class'
=>
'CLogRouter',
'routes'
=>
array(
array(
'class'
=>
'CFileLogRoute',
'levels'
=>
'trace,
info,
error,
warning',
),
//
uncomment
the
following
to
show
log
messages
on
web
pages
array(
'class'
=>
'CWebLogRoute',
'levels'
=>
'trace',
//級別為trace
'categories'
=>
'system.db.*'
//只顯示關於資料庫信息,包括資料庫連接,資料庫執行語句
),
),
),
更多關於Yii相關內容感興趣的讀者可查看本站專題:《Yii框架入門及常用技巧總結》、《php優秀開發框架總結》、《smarty模板入門基礎教程》、《php面向對象程序設計入門教程》、《php字元串(string)用法總結》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》
希望本文所述對大家基於Yii框架的PHP程序設計有所幫助。

Ⅱ yii2怎麼連接sql server

在saas中,多租戶資料庫分庫管理時常常需要自定義資料庫鏈接,並且需要支持在框架載入後再調用資料庫連接。

Yii2 如何定義資料庫連接要注意的是:

即除了使用/Yii::app−>set()外,還需要再多使用下面一句話:/Yii::app->$database->open();
因為在框架載入後再調用時,yii本身並不會幫打開連接。使用如下代碼:

<?php/***User:chenlb*/namespacebackend/moles/monitorMysql/controllers/show;classAllDatabasesextends/yii/base/Action{privatestatic$_conn=[];publicfunctionrun(){//CreateTestDBConnection$db=$this->getDb('資料庫名稱');var_mp($db->getSchema()->getTableSchema('log')->columns['id']->isPrimaryKey);exit;}/***得到資料庫連接*/publicfunctiongetDb($database){if(!isset(self::$_conn[$database])){$connInfo=['class'=>'yii/db/Connection','dsn'=>'mysql:host=HOST_IP;port=3307;dbname='.$database,'username'=>'username','password'=>'password','charset'=>'utf8'];/Yii::$app->set($database,$connInfo);/Yii::$app->$database->open();self::$_conn[$database]=/Yii::$app->$database;}returnself::$_conn[$database];}}

Ⅲ 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擴展,開發必備.

Ⅳ yii原生sql語句怎麼分頁

CREATE TABLE
1.功能是創建新表
2.語法:
CREATE TABLE table_name
(column_name data_type
{[NULL | NOT NULL]
[PRIMARY KEY | UNIQUE]}
3.參數說明:
table_name 所創建的表名。
column_name 欄位名。
data_type 欄位的數據類型。
NULL | NOT NULL 允許空或不允許空。
PRIMARY KEY | UNIQUE 欄位設置為主碼或欄位值是唯一的。
例:
CREATE TABLE 學生表
(學號 int not null PRIMARY KEY,
姓名 char(8),
性別 char(2),
年齡 tinyint)

Ⅳ yii 中如何輸出剛剛執行的完整的sql語句

1.修改main.php,加入如下代碼:
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CFileLogRoute',
'levels'=>'error, warning,trace',
),
// 以下是新加
array( // configuration for the toolbar
'class'=>'XWebDebugRouter',
'config'=>'alignLeft, opaque, runInDebug, fixedPos, collapsed, yamlStyle',
'levels'=>'error, warning, trace, profile, info',
//'categories' => 'system.db.*',
'allowedIPs'=>array('127.0.0.1','::1','192.168.1[0-5].[0-9]{3}','如果程序在外網需要填入你的公網的ip'),
),

),
)
2.db鏈接的配置裡面做下修改:
'db'=>array(
'connectionString'=>'mysql:host=*.*.*.*;dbname=test',
'emulatePrepare'=>true, // 加入
'enableParamLogging' => true, // 加入
'username'=>'-----',
'password'=>'---',
'charset'=>'utf8',
'schemaCachingDuration'=>'0',
'autoConnect'=>false,
),
3.完成

Ⅵ 一個關於 把原生sql 轉成yii2 語法的問題

Yii2怎麼執行原生sql語句
執行:
Yii::$app->getDb()->createCommand("Your SQL")->execute();
查詢:
Yii::$app->getDb()->createCommand("Your SQL")->queryAll();
其他:
Yii::$app->getDb()->createCommand("Your SQL")->xxx

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

這個有很多種方法

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

$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

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

Ⅷ yiisave怎麼把sql打出來

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

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

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

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

熱點內容
生女的演算法 發布:2025-07-18 08:17:54 瀏覽:645
加密硬碟推薦 發布:2025-07-18 08:11:22 瀏覽:944
oppo手機的密碼是多少 發布:2025-07-18 08:10:27 瀏覽:764
2匹壓縮機重 發布:2025-07-18 08:01:40 瀏覽:181
雲蟻物聯的雲存儲怎麼取消退款 發布:2025-07-18 08:01:39 瀏覽:486
訪問電腦版網頁 發布:2025-07-18 08:01:02 瀏覽:246
php集成軟體 發布:2025-07-18 07:54:36 瀏覽:143
華為密碼多少我忘記了告訴我 發布:2025-07-18 07:53:05 瀏覽:286
安卓怎麼上傳音樂到網易雲 發布:2025-07-18 07:22:22 瀏覽:375
c語言保存txt文件 發布:2025-07-18 07:01:27 瀏覽:175