yii学习笔记(6),连接数据库,创建活动记录类
创建数据库用于测试

配置数据库连接
打开yii的配置文件目录下的数据库配置文件config/db.php
<?php return [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=数据库地址;dbname=数据库名称',
'username' => '账号',
'password' => '密码',
'charset' => 'utf8',
];
填写相关配置,注意:需要开启php的pdo扩展
创建活动记录类
活动记录类和数据库的表关联,用以访问和操作数据库中的数据
一般活动记录类名对应相关联的表名,如果不同在创建活动记录类的时候重写tableName()方法声明表名
活动记录被称为“模型”
在models目录创建模型文件
<?php
namespace app\models; use yii\db\ActiveRecord; class Article extends ActiveRecord{ }
类名和模型文件名称相同
需要定义明命空间为namespace app\models;
继承yii\db\ActiveRecord;
调用模型
在控制器中调用模型获取数据
<?php
namespace app\controllers; use yii;
use yii\web\Controller;
use app\models\Article; class HomeController extends Controller{ public $layout = "home"; function actionIndex(){ $request = Yii::$app->request;
$id = $request->get("id"); // 定义sql语句,:id是占位符,防止sql注入
$sql = "select * from article where id = :id";
// 调用查询方法通过sql语句获取数据,第二个参数是给占位符替换内容
$r = Article::findBySql($sql,[":id"=>$id])->all();
dd($r);
// 加载视图
return $this->render("index",compact("host","text"));
}
}
结果如下:

yii提供了防止sql注入的方法
在定义sql语句时用户输入内容采用了占位符
在调用查询方法时将数据和占位符匹配绑定和其他处理,并不是直接拼接sql语句
基本的查询操作
// 获取全部数据
$data = Article::find()->all();
// 获取id=5的记录
$data = Article::find()->where(["id"=>5])->all();
// 获取id>5的记录
$data = Article::find()->where([">","id",5])->all();
// 获取id>2,id<5之间的记录
$data = Article::find()->where(["between","id",2,5])->all();
// 模糊查询like
$data = Article::find()->where(["like","title","Google"],[">","id",3])->all();
// 获取一条记录,默认条件是id
$data = Article::findOne(5);
// 获取多天记录
$data = Article::findAll([2,3,5]);
详细的可以查看中文文档http://www.yiichina.com/doc/guide/2.0/db-active-record
yii学习笔记(6),连接数据库,创建活动记录类的更多相关文章
- yii学习笔记(6),数据库操作(增删改)
数据库增删改操作通过活动记录实例来完成 插入记录 /* ----------添加记录---------- */ // 创建活动记录对象 $article = new Article(); $artic ...
- InterSystems Ensemble学习笔记(二) Ensemble创建镜像, 实现自动故障转移
系列目录 InterSystems Ensemble学习笔记(一) Ensemble介绍及安装InterSystems Ensemble学习笔记(二) Ensemble创建镜像, 实现自动故障转移 一 ...
- 【opencv学习笔记八】创建TrackBar轨迹条
createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便.首先大家要记住,它往往会和一个回调函数配合起来使用.先看下他的函数 ...
- qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)
原博主博客地址:http://blog.csdn.net/qq21497936本文章博客地址:http://blog.csdn.net/qq21497936/article/details/78516 ...
- C#可扩展编程之MEF学习笔记(三):导出类的方法和属性
前面说完了导入和导出的几种方法,如果大家细心的话会注意到前面我们导出的都是类,那么方法和属性能不能导出呢???答案是肯定的,下面就来说下MEF是如何导出方法和属性的. 还是前面的代码,第二篇中已经提供 ...
- Android学习笔记(六)——活动的启动模式
//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 活动的启动模式共有四种: standard.singleTop.singleTask 和 singleInst ...
- Android学习笔记(五)——活动的生命周期
//此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! 为了能写出流畅连贯的程序,我们需要了解一下活动的生命周期. 一.返回栈 Android 中的活动是可以层叠的. ...
- yii学习笔记(四)
return $this->goBack(); // 先看看Yii::$app->user->returnUrl是否已经设置, returnUrl没有设置且goBack()中的参数也 ...
- SharpGL学习笔记(十一) 光源创建的综合例子:光源参数可调节的测试场景
灯光的测试例子:光源参数可以调节的测试场景 先看一下测试场景和效果. 场景中可以切换视图, 以方便观察三维体和灯光的位置.环境光,漫射光,镜面反射光都可以在四种颜色间切换. 灯光位置和摄像机位置(Lo ...
随机推荐
- jenkins start
author:alex.wang date:2017.05.25 system:centos7.2 ip:192.168.1.46 download: wget http://mirrors.jenk ...
- OTRS工单管理系统
OTRS简介 OTRS的名字是由Open-source Ticket Request System首字母縮略字而来,是一个开源的缺陷跟踪管理系统软件. OTRS将电话,邮件等各种渠道提交进来的服务请 ...
- windows7 端口查看以及杀死进程释放端口
1.调出命令窗口:开始---->运行---->cmd,或者是window+R组合键 2.输入命令:netstat -ano,列出所有端口的情况.在列表中我们观察被占用的端口,比如是4300 ...
- Linux中nmon的安装与使用
一.下载nmon. 根据CPU的类型选择下载相应的版本:http://nmon.sourceforge.net/pmwiki.php?n=Site.Downloadwget http://source ...
- ignore_user_abort函数制定计划任务
PHP中的ignore_user_abort函数是当用户关掉终端后脚本不停止仍然在执行,可以用它来实现计划任务与持续进程,下面会通过实例讨论ignore_user_abort()函数的作用与用法. ...
- !important 语法
语法: Selector{sRule!important;} 说明: 提升指定样式规则的应用优先权. IE6及以下浏览器有个比较显式的支持问题存在,!important并不覆盖掉在同一条样式的后面的规 ...
- TP5:隐藏inde.php文件
原文地址:https://www.cnblogs.com/wangjiayi/p/7943268.html 一,找到/public/.htaccess文件,如果你的入口文件已经移动到根目录下,那么你的 ...
- docker中自定ingress网络
在某些时候,docker自动生成的ingress网络会与服务器上已经存在的网络产生冲突,这个时候,你需要自定义ingress. 在自定义前,你需要删除所有有端口发布的服务. 使用命令docker ne ...
- 如何在SAP里创建configurable material物料主数据
(1) 使用tcode CT04创建characteristic: assign 所有可能的color value: (2) 使用tcode CL02创建class. 类型选择300- variant ...
- python UI自动化实战记录九:添加日志
想知道测试脚本运行到了哪一步,在脚本内关键节点处打日志是一个很好的方法.目前只写最简单的方式,logging相关还需要继续深入. 1 引包,并配置info级别以上的都显示 import loggin ...