yii2.0操作数据库
首先不得不说yii2.0面向对象的比较彻底,建议没学过或者没学好面向对象的同学再看看面向对象。
其次切入正题。
先创建数据库,这步自己写。
DROP TABLE IF EXISTS `country`;
CREATE TABLE IF NOT EXISTS `country` (
`code` char(2) NOT NULL,
`name` char(52) NOT NULL,
`population` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- 转存表中的数据 `country`
--
INSERT INTO `country` (`code`, `name`, `population`) VALUES
('AU', 'Australia', 18886000),
('BR', 'Brazil', 170115000),
('CA', 'Canada', 1147000),
('CN', 'China', 1277558000),
('DE', 'Germany', 82164700),
('FR', 'France', 59225700),
('GB', 'United Kingdom', 59623400),
('IN', 'India', 1013662000),
('RU', 'Russia', 146934000),
('US', 'United States', 278357000);
第一步,配置config中的db文件相关属性,
<?php
return [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=digpage',
'username' => 'root',
'password' => '1111',
'charset' => 'utf8',
];
(我用的数据库是digpage,账户密码是root 1111)
第二步,配置好config中的db后,在models里面创建一个Country.php
在里面写上
<?php
namespace app\models;
use yii\db\ActiveRecord;//类似C++中的声明,必写
class Country extends ActiveRecord//继承至ActiveRecord类
{
//如果模型的命名和表的命名一致时,yii2.0会自动依靠模型命去猜测表名。
//如果不一样就需要写上下面的话
/*
public static function tableName(){
return '表名';
}
*/
}
第三步,在Controller中创建控制器CountryController.php
在里面写下如下代码
<?php
namespace app\controllers;
use yii\web\Controller;
use yii\data\Pagination;
use app\models\Country;
class CountryController extends Controller
{
public function actionIndex()
{
$query = Country::find();//查询数据库中,类似select * from ... 也可以这样写 $query=Country::findBySql('SELECT * FROM ...')
$pagination = new Pagination([
'defaultPageSize' => 5,
'totalCount' => $query->count(),
]);
$countries = $query->orderBy('population')
->offset($pagination->offset)
->limit($pagination->limit)
->all();
return $this->render('index', [
'countries' => $countries,
'pagination' => $pagination,
]);
}
}
第四步,创建视图
建一个county文件夹,文件夹内建一个index.php
内容
<?php
use yii\helpers\Html;
use yii\widgets\LinkPager;
?>
<h1>Countries</h1>
<ul>
<?php foreach ($countries as $country): ?>
<li>
<?= Html::encode("{$country->name} ({$country->code})") ?>:
<?= $country->population ?>
</li>
<?php endforeach; ?>
</ul>
<?= LinkPager::widget(['pagination' => $pagination]) ?>//换行用的
第五步,到浏览器中访问。
结束,不懂留言我来解答。
yii2.0操作数据库的更多相关文章
- 下面介绍一下 Yii2.0 对数据库 查询的一些简单的操作
下面介绍一下 Yii2.0 对数据库 查询的一些简单的操作 User::find()->all(); 此方法返回所有数据: User::findOne($id); 此方法返回 主键 id=1 的 ...
- .NET技术-2.0. 操作数据库-EF
.NET技术-2.0. 操作数据库-EF 项目参见: EF安装配置 参见: https://www.cnblogs.com/1285026182YUAN/p/10772330.html https:/ ...
- .NET技术-2.0. 操作数据库-Dapper
.NET技术-2.0. 操作数据库-Dapper 项目参见: 1. 为什么选择Dapper 1) 性能优越: 其实在各大网站上,我们大概都会看到这样的一个对比效果图,在超过500次poco seria ...
- YII2中操作数据库的方式
一.以createCommand方式: // YII2中通过createCommand来处理数据库 // 查询多条记录 // {{%user}} 表示如果设置了表前缀,YII会自动帮你替换 $data ...
- Yii2.0 对数据库 查询的简单操作
User::find()->all(); 此方法返回所有数据: User::findOne($id); 此方法返回 主键 id=1 的一条数据(举个例子): User::find()->w ...
- [moka同学笔记]yii2.0查询数据库
一. [:id占位符]使用 $results = Test::findBySql($sql,array(':id'=>'1 or 1=1))->all() 二. [id=1] 选 ...
- Yii2.0 数据库查询 [ 2.0 版本 ]
下面介绍一下 Yii2.0 对数据库 查询的一些简单的操作 User::find()->all(); 此方法返回所有数据: User::findOne($id); 此方法返回 主键 id=1 的 ...
- Yii2.0 两次奇葩的数据库连接经历
经历一: 公司的项目经过阿里云的ECS升级后,发现在Yii2.0框架中,凡是数据库新增的字段(当然相关的表模型肯定是加了相应字段的),老是报“属性找不到”的问题,最后排查是数据库连接的问题.把127. ...
- Yii2.0高级框架数据库增删改查的一些操作(转)
yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...
随机推荐
- react-keeper
通过 react-keeper 替换掉 react-router 解决 页面缓存问题.
- 去除Odoo主页中的提示: Your Odoo is not supported.
来自 有两种方法可Odoo主页中的提示: Your Odoo is not supported. 方法1 - 修改源码 打开\addons\mail\static\src\js目录下的mail.js, ...
- view xml 中的 button 调用web客户端事件
最近写一个模块 需要 在客户端干点事. 按常规的方法, 应该是写个 客户端模块. 在 客户端 init, start, render 去渲染个按钮出来干事.暂时还不太理解WEB模块如何很好地同服务器端 ...
- android基础-Apk打包过程(了解)
此文来源于<Android软件安全与逆向分析> 一.打包资料文件,生成R.java文件. 二.处理aidl文件,生成相应的Java文件. 三.编译工程源代码,生成相应的class文件. 四 ...
- javax.naming.NoInitialContextException: Need to specify class name in environment or system property
javax.naming.NoInitialContextException: Need to specify class name in environment or system property ...
- spring mvc相关问题
1: 基于注解的SpringMVC简单介绍 2: spring组件扫描<context:component-scan/>使用详解 3: springMvc 注解配置例子
- Python 开发者的 6 个必备库,你都了解吗?
无论你是正在使用 Python 进行快速开发,还是在为 Python 桌面应用制作原生 UI ,或者是在优化现有的 Python 代码,以下这些 Python 项目都是应该使用的. Python那些事 ...
- Linux命令-文件搜索命令:whereis
主要用途:查找linu命令,而不是磁盘上的普通文件,并且能看到命令的目录和帮助文件. whereis useradd 查找命令useradd的所在位置,同时还查出来它的帮助文件所在位置 whereis ...
- mosquitto ---mosquitto-auth-plug
https://github.com/jpmens/mosquitto-auth-plug This is a plugin to authenticate and authorize Mosquit ...
- java开源内容管理系统J4CMS支持真正静态化
原理非常easy,使用httpclient请求遍历整个站点的菜单.文章链接.请求下来以后,生成html文件.即静态化了 把它们稍作调整,直接扔在88元购买的阿里云主机上.站点就完毕了 这是我的 静态站 ...