yii2.0 怎么打印自動生成的創建sql語句
在config/*中
'components'=>array(
'db'=>array(
'enableParamLogging' => true,//增加這行
),
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CFileLogRoute',
'levels'=>'trace, info error, warning', //日志標準增加trace, info
),
),
),
)
在你的*中可以直接查看, 另外一種方法,也是最方便的就是安裝debugtoolbar擴展,開發必備.
yii怎樣輸出當前的sql語句的結果
在你的config/*中
'components'=>array(
'db'=>array(
'enableParamLogging' => true,//增加這行
),
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CFileLogRoute',
'levels'=>'trace, info error, warning', //日志標準增加trace, info
),
),
),
)
在你的*中可以直接查看, 另外一種方法,也是最方便的就是安裝debugtoolbar擴展,開發必備.
yii 中如何輸出剛剛執行的完整的sql語句
1.修改*,加入如下代碼:
'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' => '*.*',
'allowedIPs'=>array('127.0.0.1','::1','192.168.1[0-5].[0-9]{3}','如果程序在外網需要填入你的公網的ip'),
),
),
)
*鏈接的配置里面做下修改:
'db'=>array(
'connectionString'=>'mysql:host=*.*.*.*;dbname=test',
'emulatePrepare'=>true, // 加入
'enableParamLogging' => true, // 加入
'username'=>'-----',
'password'=>'---',
'charset'=>'utf8',
'schemaCachingDuration'=>'0',
'autoConnect'=>false,
),
3.完成
yii框架save時候 如何打印sql
在config/*中
'components'=>array(
'db'=>array(
'enableParamLogging' => true,//增加這行
),
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CFileLogRoute',
'levels'=>'trace, info error, warning', //日志標準增加trace, info
),
),
),
)
在你的*中可以直接查看, 另外一種方法,也是最方便的就是安裝debugtoolbar擴展,開發必備.
yii criteria怎樣打印原始sql
<span style="font-family:Helvetica;font-size:14px;">;想查看如下結果,但由于較大,var_dump時瀏覽器會崩潰,于是想到如果知道執行的sql是什么,那么就可以推出執行后的結果是什么。 </span><br style="line-height: 25px; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px;" />
[php] view plain copy
[php] view plain copy
//1,在 ../config/*里增加'class'=>'CProfileLogRoute'
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CFileLogRoute',
'levels'=>'error, warning',
),
thinkphp怎么打印sql語句
[ SQL ] SHOW COLUMNS FROM `think_action` [ RunTime:0.001339s ]
[ EXPLAIN : array ( 'id' => '1', 'select_type' => 'SIMPLE', 'table' => 'think_action', 'partitions' => NULL, 'type' => 'ALL', 'possible_keys' => NULL, 'key' => NULL, 'key_len' => NULL, 'ref' => NULL, 'rows' => '82', 'filtered' => '100.00', 'extra' => NULL, ) ]
[ SQL ] SELECT * FROM `think_action` LIMIT 1 [ RunTime:0.000539s ]thinkphp如何打印sql語句?
怎樣打印出SQL語句
使用PRINT一般是寫程序時觀察中間結果,對于你說的這種情況,可以直接用SELECT輸出結果,在存儲過程里也可以這樣。如果是在函數或者觸發器里,可以建個測試表,如果是表值函數則可以定義一個表變量。
如果一定要print,那么這樣吧:
delcare @number int
declare @course nvarchar(30) --for example
select @number=number,@course=course from choice where studentnumber = '20100001'
print @number
print @course
這是樓上的朋友的勞動成果,望勿見怪
如果一定要PRINT全部的,那么用游標吧:
declare @info varchar(200)
declare @curs cursor
set @curs=cursor scroll dynamic
for
select 'number='+convert(varchar(20),number)+'; course='+convert(varchar(20),course) from choice where sex='F'
open @curs
fetch next from @curs into @info
while(@@fetch_status=0)
begin
print @info
fetch next from @curs into @info
end
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方法的源碼 你會發現下面一段代碼
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;
}
$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
個人推薦第二種方法,最方法最高效,具體配置方法自己百度,很簡單!
轉載請注明出處華閱文章網 » yii打印sql語句