當前位置:首頁 » 編程語言 » yii1執行sql
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

yii1執行sql

發布時間: 2022-04-19 03:05:02

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

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

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

//輸出SQL語句

$commandQuery=clone$query;
echo$commandQuery->createCommand()->getRawSql();$users=$query->all();

B. 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程序設計有所幫助。

C. Yii使用migrate命令執行sql語句的方法

本文實例講述了Yii使用migrate命令執行sql語句的方法。分享給大家供大家參考,具體如下:
Yii2自帶一個強大的命令行管理工具,在windows下打卡cmd命令窗口,切換到Yii項目所在目錄(包含Yii.bat),就可以在cmd中運行Yii命令了。
使用Yii
migrate命令執行sql語句:
如在路徑為/console/migrations/m130524_201442_init.php這個文件定義了一張User表的sql,我們要執行這個sql來生成數據表,就運行:
yii
migrate
console/migrations/m130524_201442_init.php
migrate是Yii用於數據遷移的命令,這只是其中一個用法。
轉自:小談博客
http://www.tantengvip.com/2015/05/yii-migrate-sql/
更多關於Yii相關內容感興趣的讀者可查看本站專題:《Yii框架入門及常用技巧總結》、《php優秀開發框架總結》、《smarty模板入門基礎教程》、《php日期與時間用法總結》、《php面向對象程序設計入門教程》、《php字元串(string)用法總結》、《php+mysql資料庫操作入門教程》及《php常見資料庫操作技巧匯總》
希望本文所述對大家基於Yii框架的PHP程序設計有所幫助。

D. Yii2怎麼執行原生sql語句查詢

Database Exception – yii\db\Exception

PDOStatement::fetchAll() expects parameter 1 to be long, string given
The SQL being executed was: select * from hd_article where aid<31 order by aid desc limit 1

Caused by: yii\base\ErrorException

PDOStatement::fetchAll() expects parameter 1 to be long, string given

in D:\WWW\web\vendor\yiisoft\yii2\db\Command.php at line 848

E. 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

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

F. Yii的ActiveRecord是自動產生SQL語句嗎

不太理解你想問什麼。通常框架中的資料庫操作都是DB對象負責的,也就是通常來說其它對象只會創建一個能用來產生SQL語句的結構體,然後DB對象會分析這個結構體然後轉換為sql並執行。
至於Yii的ActiveRecord,你可以理解為是將資料庫表中的記錄對象化了。即每個ActiveRecord實例對應了指定的數據表中的特定行(包括新建的行),它封裝了save, delete方法,但是具體的save,delete操作還是轉交給db對象實際完成的。

G. 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.完成

H. yii框架中怎麼執行統計類sql語句

將頁面范圍的變數名稱映射到其值。
例如,EL 表達式可以使用 ${pageScope.objectName} 訪問一個 JSP 中頁面范圍的對象,還可以使用 ${pageScope .objectName. attributeName} 訪問對象的屬性。