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 相关文章推荐
Apache设置虚拟WEB
Oct 09 PHP
php上传、管理照片示例
Oct 09 PHP
php smarty模版引擎中的缓存应用
Dec 02 PHP
PHP中使用Imagick实现各种图片效果实例
Jan 21 PHP
php中PDO方式实现数据库的增删改查
May 17 PHP
php实现mysql数据库分表分段备份
Jun 18 PHP
非常有用的9个PHP代码片段
Apr 06 PHP
Yii2框架使用计划任务的方法
May 25 PHP
PHP支付系统设计与典型案例分享
Aug 02 PHP
laravel自定义分页效果
Jul 23 PHP
PHP大文件切割上传并带进度条功能示例
Jul 01 PHP
Laravel 自动生成验证的实例讲解:login / logout
Oct 14 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读取XML值的代码(推荐)
2011/01/01 PHP
一个PHP并发访问实例代码
2012/09/06 PHP
ajax取消挂起请求的处理方法
2013/03/18 PHP
如何使用PHP计算上一个月的今天
2013/05/23 PHP
PHP数字和字符串ID互转函数(类似优酷ID)
2014/06/30 PHP
PHP 绘制网站登录首页图片验证码
2016/04/12 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
2017/07/31 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
2019/08/03 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
JQuery SELECT单选模拟jQuery.select.js
2009/11/12 Javascript
js 调用父窗口的具体实现代码
2013/07/15 Javascript
js日期、星座的级联显示代码
2014/01/23 Javascript
Bootstrap的Carousel配合dropload.js实现移动端滑动切换图片
2017/03/10 Javascript
jQuery动画_动力节点节点Java学院整理
2017/07/04 jQuery
Angular 开发学习之Angular CLI的安装使用
2017/12/31 Javascript
vuejs实现递归树型菜单组件
2018/01/13 Javascript
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
vue2.0 路由模式mode=&quot;history&quot;的作用
2018/10/18 Javascript
基于vue实现简易打地鼠游戏
2020/08/21 Javascript
JavaScript构造函数原理及实现流程解析
2020/11/19 Javascript
vue实现可移动的悬浮按钮
2021/03/04 Vue.js
Python实现的几个常用排序算法实例
2014/06/16 Python
Python查找相似单词的方法
2015/03/05 Python
python判断字符串是否包含子字符串的方法
2015/03/24 Python
python使用reportlab实现图片转换成pdf的方法
2015/05/22 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
Django Rest framework解析器和渲染器详解
2019/07/25 Python
手写一个python迭代器过程详解
2019/08/27 Python
基于Html5实现的语音搜索功能
2019/05/13 HTML / CSS
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
小学主题班会教案
2015/08/17 职场文书
2016年大学生党员公开承诺书
2016/03/24 职场文书
解决python3安装pandas出错的问题
2021/05/20 Python
SpringBoot连接MySQL获取数据写后端接口的操作方法
2021/11/02 MySQL
Python 数据可视化之Bokeh详解
2021/11/02 Python
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2022/06/16 Golang