美文网首页
YII2的数据库操作

YII2的数据库操作

作者: 刘圣凯 | 来源:发表于2019-04-19 18:22 被阅读0次

    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);
        }
    }
    

    相关文章

      网友评论

          本文标题:YII2的数据库操作

          本文链接:https://www.haomeiwen.com/subject/ukucgqtx.html