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 相关文章推荐
PHP生成带有雪花背景的验证码
Sep 28 PHP
PHP+Mysql+jQuery实现动态展示信息
Oct 08 PHP
php中一个完整表单处理实现代码
Nov 10 PHP
采集邮箱的php代码(抓取网页中的邮箱地址)
Jul 17 PHP
PHP判断图片格式的七种方法小结
Jun 03 PHP
destoon调用自定义模板及样式的公告栏
Jun 21 PHP
Codeigniter框架实现获取分页数据和总条数的方法
Dec 05 PHP
php rsa加密解密使用详解
Jan 14 PHP
thinkPHP3.2.2框架行为扩展及demo示例
Jun 19 PHP
PHP如何实现阿里云短信sdk灵活应用在项目中的方法
Jun 14 PHP
Laravel实现搜索的时候分页并携带参数
Oct 15 PHP
解决windows上php xdebug 无法调试的问题
Feb 19 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
PHP实现使用优酷土豆视频地址获取swf播放器分享地址
2014/06/05 PHP
Prototype使用指南之ajax
2007/01/10 Javascript
YUI的Tab切换实现代码
2010/04/11 Javascript
JQury slideToggle闪烁问题及解决办法
2011/07/05 Javascript
关于eval 与new Function 到底该选哪个?
2013/04/17 Javascript
利用JS实现浏览器的title闪烁
2013/07/08 Javascript
jquery增加时编辑jqGrid(实例代码)
2013/11/08 Javascript
js调用后台、后台调用前台等方法总结
2014/04/17 Javascript
javascript倒计时效果实现
2015/11/12 Javascript
jquery判断复选框是否选中进行答题提示特效
2015/12/10 Javascript
Javascript复制实例详解
2016/01/28 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
2016/06/29 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
2016/07/14 Javascript
jQuery中$.ajax()方法参数解析
2016/10/22 Javascript
Bootstrap源码学习笔记之bootstrap进度条
2016/12/24 Javascript
如何提高数据访问速度
2016/12/26 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
JS实现动态添加DOM节点和事件的方法示例
2017/04/28 Javascript
webstorm添加*.vue文件支持
2018/05/08 Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
2020/07/20 Javascript
[36:20]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.17
2020/12/18 DOTA
Python使用functools模块中的partial函数生成偏函数
2016/07/02 Python
python实现弹跳小球
2019/05/13 Python
pyqt5移动鼠标显示坐标的方法
2019/06/21 Python
python 命令行传入参数实现解析
2019/08/30 Python
Django 实现Admin自动填充当前用户的示例代码
2019/11/18 Python
CSS3 display知识详解
2015/11/25 HTML / CSS
使用html5+css3来实现slider切换效果告别javascript+css
2013/01/08 HTML / CSS
全球酒店预订网站:Hotels.com
2016/08/10 全球购物
自我评价是什么
2014/01/04 职场文书
学前班语言教学计划
2015/01/20 职场文书
2015年大学班主任工作总结
2015/04/30 职场文书
2015年电厂工作总结范文
2015/05/13 职场文书
未婚证明范本
2015/06/15 职场文书
导游词之太行山青龙峡
2020/01/14 职场文书
如何正确理解python装饰器
2021/06/15 Python