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文件打开、关闭、写入的判断与执行代码
May 24 PHP
php实现可用于mysql,mssql,pg数据库操作类
Dec 13 PHP
微信公众平台实现获取用户OpenID的方法
Apr 15 PHP
PHP如何使用Memcached
Apr 05 PHP
thinkPHP2.1自定义标签库的导入方法详解
Jul 20 PHP
php opendir()列出目录下所有文件的实例代码
Oct 02 PHP
php mysql操作mysql_connect连接数据库实例详解
Dec 26 PHP
PHP用PDO如何封装简单易用的DB类详解
Jul 30 PHP
Yii框架函数简单用法分析
Sep 09 PHP
PHP 观察者模式深入理解与应用分析
Sep 25 PHP
laravel5.2表单验证,并显示错误信息的实例
Sep 29 PHP
php回调函数处理数组操作示例
Apr 13 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
使ecshop模板中可引用常量的实现方法
2011/06/02 PHP
php中一个有意思的日期逻辑处理
2012/03/25 PHP
解析yahoo邮件用phpmailer发送的实例
2013/06/24 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
php redis实现文章发布系统(用户投票系统)
2017/03/04 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
2017/03/05 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
2017/06/15 PHP
php使用json-schema模块实现json校验示例
2019/09/28 PHP
JavaScript 实现??打印?理
2007/04/28 Javascript
JQuery CheckBox(复选框)操作方法汇总
2015/04/15 Javascript
使用canvas实现仿新浪微博头像截取上传功能
2015/09/02 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
JavaScript使用ZeroClipboard操作剪切板
2017/05/10 Javascript
详解AngularJS1.6版本中ui-router路由中/#!/的解决方法
2017/05/22 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
2017/07/10 Javascript
在一个页面实现两个zTree联动的方法
2017/12/20 Javascript
微信小程序如何像vue一样在动态绑定类名
2018/04/17 Javascript
vue.js中toast用法及使用toast弹框的实例代码
2018/08/27 Javascript
JS实现从对象获取对象中单个键值的方法示例
2019/06/05 Javascript
Vue的属性、方法、生命周期实例代码详解
2019/09/17 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
vue-quill-editor插入图片路径太长问题解决方法
2021/01/08 Vue.js
本地文件上传到七牛云服务器示例(七牛云存储)
2014/01/11 Python
Python彩色化Linux的命令行终端界面的代码实例分享
2016/07/02 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
Python ArgumentParse的subparser用法说明
2020/04/20 Python
Python2与Python3关于字符串编码处理的差别总结
2020/09/07 Python
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
澳大利亚牛仔裤商店:Just Jeans
2016/10/13 全球购物
Vertbaudet西班牙网上商店:婴儿服装、童装、母婴用品和儿童家具
2019/10/16 全球购物
德国BA保镖药房中文网:Bodyguard Apotheke
2021/03/09 全球购物
音乐教学案例
2014/01/30 职场文书
安全教育片观后感
2015/06/17 职场文书
MySQL sql模式设置引起的问题
2022/05/15 MySQL
win10搭建配置ftp服务器的方法
2022/08/05 Servers