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


Posted in PHP onMay 27, 2019

本文实例讲述了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_dump(\Yii::$app->db);

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

怎么执行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框架的PHP程序设计有所帮助。

PHP 相关文章推荐
Discuz 5.0 中读取纯真IP数据库函数分析
Mar 16 PHP
为PHP初学者的8点有效建议
Nov 20 PHP
php 批量替换html标签的实例代码
Nov 26 PHP
php实现的DateDiff和DateAdd时间函数代码分享
Aug 16 PHP
php递归删除指定文件夹的方法小结
Apr 20 PHP
Yii使用技巧大汇总
Dec 29 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
May 13 PHP
php函数mkdir实现递归创建层级目录
Oct 27 PHP
PHP不使用递归的无限级分类简单实例
Nov 05 PHP
PHP定义字符串的四种方式详解
Feb 06 PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
Jul 30 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
Oct 12 PHP
php session_decode函数用法讲解
May 26 #PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
May 25 #PHP
Yii2框架自定义类统一处理url操作示例
May 25 #PHP
Yii2框架加载css和js文件的方法分析
May 25 #PHP
php数组遍历类与用法示例
May 24 #PHP
PHP实现的操作数组类库定义与用法示例
May 24 #PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
May 23 #PHP
You might like
DC动画很好看?新作烂得令人发指,名叫《红色之子》
2020/04/09 欧美动漫
PHP接口并发测试的方法(推荐)
2016/12/15 PHP
Prototype源码浅析 Enumerable部分之each方法
2012/01/16 Javascript
js修改table中Td的值(定义td的单击事件)
2013/01/10 Javascript
JS注释所产生的bug 即使注释也会执行
2013/11/19 Javascript
Jquery中使用show()与hide()方法动画显示和隐藏图片
2015/10/08 Javascript
使用angularjs创建简单表格
2016/01/21 Javascript
Uploadify上传文件方法
2016/03/16 Javascript
全面了解构造函数继承关键apply call
2016/07/26 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
2016/11/21 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
浅谈vue的几种绑定变量的值 防止其改变的方法
2018/03/01 Javascript
基于jQuery的时间戳与日期间的转化
2019/06/21 jQuery
jQuery实现的记住帐号密码功能完整示例
2019/08/03 jQuery
Vue中rem与postcss-pxtorem的应用详解
2019/11/20 Javascript
浅谈vue权限管理实现及流程
2020/04/23 Javascript
layui实现显示数据表格、搜索和修改功能示例
2020/06/03 Javascript
[28:28]Ti4 冒泡赛第二天NEWBEE vs NaVi 2
2014/07/15 DOTA
Python中几种操作字符串的方法的介绍
2015/04/09 Python
Python控制Firefox方法总结
2019/06/03 Python
python opencv将图片转为灰度图的方法示例
2019/07/31 Python
python修改文件内容的3种方法详解
2019/11/15 Python
pytorch常见的Tensor类型详解
2020/01/15 Python
python 遗传算法求函数极值的实现代码
2020/02/11 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
python网络编程socket实现服务端、客户端操作详解
2020/03/24 Python
CSS3实现DIV圆角效果完整代码
2012/10/10 HTML / CSS
一些网络技术方面的面试题
2014/05/01 面试题
写好求职应聘自荐信的三部曲
2013/09/21 职场文书
高中生学习生活的自我评价
2013/11/27 职场文书
生日邀请函范文
2014/01/13 职场文书
公民授权委托书
2014/10/15 职场文书
2014年小学少先队工作总结
2014/12/18 职场文书
单位租车协议书
2015/01/29 职场文书
2015年求职自荐信范文
2015/03/04 职场文书