当前位置:首页 » 编程语言 » 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} 访问对象的属性。