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实现框架(二)
Oct 09 PHP
对象失去焦点时自己动提交数据的实现代码
Nov 06 PHP
一个PHP的ZIP压缩类分享
May 04 PHP
PHP登录环节防止sql注入的方法浅析
Jun 30 PHP
php打造智能化的柱状图程序,用于报表等
Jun 19 PHP
php 使用redis锁限制并发访问类示例
Nov 02 PHP
php对接java现实加签验签的实例
Nov 25 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
Apr 09 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
Oct 16 PHP
php libevent 功能与使用方法详解
Mar 04 PHP
PHP实现基本留言板功能原理与步骤详解
Mar 26 PHP
eval(cmd)与eval($cmd)的区别与联系
Jul 07 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中显示格式化的用户输入
2006/10/09 PHP
php expects parameter 1 to be resource, array given 错误
2011/03/23 PHP
一个PHP缓存类代码(附详细说明)
2011/06/09 PHP
php中adodbzip类实例
2014/12/08 PHP
PHP5.5迭代生成器用法实例详解
2016/03/16 PHP
PHP创建XML接口示例
2019/07/04 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
JavaScript面象对象设计
2008/04/28 Javascript
jquery 学习笔记 传智博客佟老师附详细注释
2020/09/12 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
移动端web滚动分页的实现方法
2017/05/05 Javascript
使用jQuery实现鼠标点击左右按钮滑动切换
2017/08/04 jQuery
JS实现商品橱窗特效
2020/01/09 Javascript
如何使用原生Js实现随机点名详解
2021/01/06 Javascript
python判断、获取一张图片主色调的2个实例
2014/04/10 Python
python删除列表内容
2015/08/04 Python
用Pygal绘制直方图代码示例
2017/12/07 Python
Python实现中一次读取多个值的方法
2018/04/22 Python
使用python生成杨辉三角形的示例代码
2018/08/29 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
2019/01/15 Python
Python调用C语言的实现
2019/07/26 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
2020/04/01 Python
无需压缩软件,用python帮你操作压缩包
2020/08/17 Python
时尚设计师手表:The Watch Cabin
2018/10/06 全球购物
康拓普公司Java笔面试
2016/09/23 面试题
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
网站创业计划书
2014/04/30 职场文书
2014银行领导班子群众路线对照检查材料思想汇报
2014/09/17 职场文书
学习心理学的体会
2014/11/07 职场文书
民政局标准版离婚协议书
2014/12/01 职场文书
2014高三学生考试作弊检讨书
2014/12/14 职场文书
行政处罚决定书
2015/06/24 职场文书
关于食品安全的演讲稿范文(三篇)
2019/10/21 职场文书
Oracle删除归档日志及添加定时任务
2022/06/28 Oracle
解决ubuntu安装软件时,status-code=409报错的问题
2022/12/24 Servers