当前位置:首页 » 编程语言 » yiisql

yiisql

发布时间: 2022-01-10 02:04:54

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. yiisave怎么把sql打出来

1. 判断所要保存的实例是否已处于持久化状态,如果不是,则将其置入缓存

2. 根据所要保存的实例计划一条insert sql语句,注意只是计划,并不执行;

3. 事务提交时执行之前所计划的insert语句;

将tx.commit()换成session.flush,此时控制太打印出了insert语句,但是数据库中并没有添加新的记录;

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

D. 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)

E. (急)yii SQL查询出的结果数组转换成AR模式

除了cactivedataprovider,你还可以使用CArrayDataProvider
我给你写个例子:
controller中:
$rawdata = Yii::app()->db->createCommand('select * from {{post}} where id<100')->queryAll();

$data = new CArrayDataProvider($rawdata, array(
'id' => 'user',
'sort' => array(
'attributes' => array(
'id', 'title', 'content'
),
),
'pagination' => array(
'pageSize' => 10,
),
));
$this->render('gridview_array', array('dataProvider' => $data));

然后view中:
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'somegrid',
'dataProvider'=>$dataProvider,
'columns'=>array(
'id',
'title',
'content',
),
));
这样就ok 了~

F. 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扩展,开发必备.

G. Yii2怎么执行原生sql语句查询

Yii2怎么执行原生sql语句
执行:
Yii::$app->getDb()->createCommand("Your SQL")->execute();
查询:
Yii::$app->getDb()->createCommand("Your SQL")->queryAll();
其他:
Yii::$app->getDb()->createCommand("Your SQL")->xxx

H. YII框架如何直接通过sql更新

是你的sql语句本身有就错了,应该是这样:
$sql = " UPDATE ".$val. " SET TicketStatus =:TicketStatus , PauseOperator =:PauseOperator WHERE TicketNo =:TicketNo";

sql关键字推荐写成大写。

I. 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程序设计有所帮助。

J. 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 发布:2024-09-20 09:07:24 浏览:763
如何提高三星a7安卓版本 发布:2024-09-20 08:42:35 浏览:662
如何更换服务器网站 发布:2024-09-20 08:42:34 浏览:309
子弹算法 发布:2024-09-20 08:41:55 浏览:287
手机版网易我的世界服务器推荐 发布:2024-09-20 08:41:52 浏览:815
安卓x7怎么边打游戏边看视频 发布:2024-09-20 08:41:52 浏览:160
sql数据库安全 发布:2024-09-20 08:31:32 浏览:91
苹果连接id服务器出错是怎么回事 发布:2024-09-20 08:01:07 浏览:505
编程键是什么 发布:2024-09-20 07:52:47 浏览:655
学考密码重置要求的证件是什么 发布:2024-09-20 07:19:46 浏览:479