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

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

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

浙公网安备 33010602011771号