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

yii2sql

发布时间: 2022-03-02 20:55:05

1. yii2数据库查询

执行:
Yii::$app->getDb()->createCommand("Your sql")->execute();
查询:
Yii::$app->getDb()->createCommand("Your SQL")->queryAll();
其他:
Yii::$app->getDb()->createCommand("Your SQL")->xxx

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

个人推荐第二种方法,最方法最高效,具体配置方法自己网络,很简单!

3. 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();

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

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

6. yii2中数据库的操作中,怎么实现像mysql

第一查看config里面的数据库配置
是否选择的是mysql
第二数据库的账号密码是否正确

7. Yii2框架操作数据库的方法分析【以mysql为例】

本文实例讲述了Yii2框架操作数据库的方法。分享给大家供大家参考,具体如下:
准备数据库
DROP
TABLE
IF
EXISTS
`pre_user`;
CREATE
TABLE
`pre_user`(
`id`
int(11)
AUTO_INCREMENT
PRIMARY
KEY,
`username`
varchar(255)
NOT
NULL,
`password`
varchar(32)
NOT
NULL
DEFAULT
'',
`password_hash`
varchar(255)
NOT
NULL
DEFAULT
'',
`email`
varchar(255)
NOT
NULL
DEFAULT
'',
`status`
smallint(6)
NOT
NULL
DEFAULT
10,
`created_at`
smallint(6)
NOT
NULL
DEFAULT
0,
`updated_at`
smallint(6)
NOT
NULL
DEFAULT
0
)ENGINE=InnoDB
DEFAULT
CHARSET=utf8mb4;
配置连接
config\db.php
<?php
return
[
'class'
=>
'yii\db\Connection',
'dsn'
=>
'mysql:host=localhost;dbname=yii2',
'username'
=>
'root',
'password'
=>
'root',
'charset'
=>
'utf8mb4',
'tablePrefix'
=>
'pre_'
];
查看数据库连接是否成功
控制器里打印:
var_mp(\Yii::$app->db);
怎么执行SQL语句?
增删改
//
接收表单的数据
$username
=
'jack';
$sql
=
"INSERT
INTO
{{%user}}
(username,status)
VALUES
(:username,:status)";
//
返回受影响行数
$row
=
\Yii::$app->db->createCommand($sql,['username'=>$username,'status'=>8])->execute();
//
获取自增ID
echo
\Yii::$app->db->getLastInsertID();
查询
$sql
=
"SELECT
*
FROM
{{%user}}
WHERE
id>:id";
//
查询结果是一个二维数组
$userArr
=
\Yii::$app->db->createCommand($sql,['id'=>1])->queryAll();
//
如果要查询一个
$user
=
\Yii::$app->db->createCommand($sql,['id'=>1])->queryOne();
//
如果要返回单值
//
例如
select
count(*)语句
$count
=
\Yii::$app->db->createCommand($sql,['id'=>1])->queryScalar();
echo
$count;
更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。
您可能感兴趣的文章:Yii2.0高级框架数据库增删改查的一些操作Yii2——使用数据库操作汇总(增删查改、事务)Yii2数据库操作常用方法小结Yii2框架实现数据库常用操作总结Yii2实现跨mysql数据库关联查询排序功能代码Yii+MYSQL锁表防止并发情况下重复数据的方法Yii
连接、修改
MySQL
数据库及phpunit
测试连接Yii实现MySQL多数据库和读写分离实例分析Yii操作数据库实现动态获取表名的方法Yii操作数据库的3种方法

8. yii2怎么连接sql server

在saas中,多租户数据库分库管理时常常需要自定义数据库链接,并且需要支持在框架加载后再调用数据库连接。

Yii2 如何定义数据库连接要注意的是:

即除了使用/Yii::app&#8722;>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];}}
热点内容
怎么把服务器的ip固定了 发布:2025-01-12 03:55:42 浏览:578
php服务器开发 发布:2025-01-12 03:55:35 浏览:672
软件自制编程 发布:2025-01-12 03:54:00 浏览:534
j2ee和java的区别 发布:2025-01-12 03:42:44 浏览:581
android6小米 发布:2025-01-12 03:38:35 浏览:85
redis与数据库 发布:2025-01-12 03:20:21 浏览:211
怎么升级安卓100 发布:2025-01-12 03:19:37 浏览:516
c语言倒数 发布:2025-01-12 03:14:37 浏览:929
如何免费激活移动电话卡安卓 发布:2025-01-12 03:10:27 浏览:89
2020凯越精英配置什么样 发布:2025-01-12 03:08:02 浏览:685