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

Yii2怎么执行原生sql语句查询,第1张

先创建连接对象

$connection = new \yii\db\Connection([

'dsn' =>$dsn,

'username' =>$username,

'password' =>$password,

])

$connection->open()

查询返回多行:

$command = $connection->createCommand('SELECT * FROM post')

$posts = $command->queryAll()

返回单行:

$command = $connection->createCommand('SELECT * FROM post WHERE id=1')

$post = $command->queryOne()

查询多行单值:

$command = $connection->createCommand('SELECT title FROM post')

$titles = $command->queryColumn()

查询标量值/计算值:

$command = $connection->createCommand('SELECT COUNT(*) FROM post')

$postCount = $command->queryScalar()

本文实例讲述了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=localhostdbname=yii2',

'username'

=>

'root',

'password'

=>

'root',

'charset'

=>

'utf8mb4',

'tablePrefix'

=>

'pre_'

]

查看数据库连接是否成功

控制器里打印:

var_dump(\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种方法


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6767143.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存