YII2的数据库操作

YII2框架的 config 文件夹中配置 db.php,

<?php

return [
    'class' => 'yii\db\Connection',
    //dsn=>'数据库':host='地址,默认是本地',dbname='数据库名'
    'dsn' => 'mysql:host=localhost;dbname=yii',
    //账户名
    'username' => 'root',
    //密码
    'password' => 'root',
    'charset' => 'utf8',

    // Schema cache options (for production environment)
    //'enableSchemaCache' => true,
    //'schemaCacheDuration' => 60,
    //'schemaCache' => 'cache',
];

配置好之后就可以连接到数据库了,我们先去新建一个数据库yii,在里面新建一个表 article, 添加一点数据,如下:

image.png

,YII2框架通过 控制器 来操作 模型 ,一般一个 模型 对应一个 表名 ,如果需要用到活动记录,可以在这里看看方法,我们接着在 models 新建一个 article.php 文件对应表名, 接着就可以去控制器去控制这个模型了。

<?php
namespace app\models;

use yii\db\ActiveRecord;

class article extends ActiveRecord{
    
}

查询[ find ]

<?php

namespace app\controllers;


use yii\web\Controller;
use app\models\article;



class HomeController extends Controller{
    public $layout = 'home';

    public function actionIndex(){
        //查询全部
        // $data = article::find()->asArray()->all();
        //条件查询
        $data = article::find()->where(['between','id',2,10])->asArray()->all();
        //单条查询
        // $data = article::findOne(2);
        var_dump($data);
        return;
        //分批处理
        foreach(article::find()->asArray()->batch(2) as $article){
            // echo count($article);
            $data[]=$article;
        }
    }
}

添加[ (insert,save) ]

<?php

namespace app\controllers;


use yii\web\Controller;
use app\models\article;



class HomeController extends Controller{
    public $layout = 'home';

    public function actionIndex(){
        $article = new article();
        $article->title = '新的一条数据';  
        $article->num = 7;
        // $rt = $article->insert();
        $rt = $article->save();
        var_dump($rt);
    }
}

更新[ (update,save) ]

<?php

namespace app\controllers;


use yii\web\Controller;
use app\models\article;



class HomeController extends Controller{
    public $layout = 'home';

    public function actionIndex(){
        //修改
        $val = article::findOne(['id'=>8]);
        $val->title='测试能不能修改2';
        $f=$val->save();
        // $f=$val->update();
        var_dump($f);
        //修改单个字段
        $d = article::updateAllCounters(['num'=>1],['id'=>8]);
        var_dump($d);
    }
}

删除[ (delect,delectAll) ]

<?php

namespace app\controllers;


use yii\web\Controller;
use app\models\article;



class HomeController extends Controller{
    public $layout = 'home';

    public function actionIndex(){
        //删除
        $val = article::findOne(['id'=>7]);
        $result = $val->delete();
        //删除条件匹配的所有数据,没有传递则删除全部数据
        // $result = $val->deleteAll('id>12 and num>5');
        var_dump($result);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容