Yii2.0 对数据库查询的一些简单的操作

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 User::findOne( $id );    //此方法返回 主键 id=1  的一条数据(举个例子);    User::find()->where([ 'name'  =>  '老司机' ])->one();    //此方法返回 ['name' => '老司机'] 的一条数据;   User::find()->where([ 'name'  =>  '老司机' ])->all();    //此方法返回 ['name' => '老司机'] 的所有数据;   User::find()->orderBy( 'id DESC' )->all();    //此方法是排序查询;   User::findBySql( 'SELECT * FROM user' )->all();   //此方法是用 sql  语句查询 user 表里面的所有数据;   User::findBySql( 'SELECT * FROM user' )->one();   //此方法是用 sql  语句查询 user 表里面的一条数据;   User::find()->where( "sex=:sex and age>:age" , [ ':sex'  =>  '男' 'age'  =>  '24' ])-> count ( 'id' );    //统计符合条件的总条数;   User::find()->andWhere([ 'sex'  =>  '男' 'age'  =>  '24' ])-> count ( 'id' );    //统计符合条件的总条数;   User::find()->andFilterWhere([ 'like' 'name' '老司机' ]);  //此方法是用 like 查询 name 等于 老司机的 数据   User::find()->one();     //此方法返回一条数据;   User::find()->all();     //此方法返回所有数据;   User::find()-> count ();     //此方法返回记录的数量;   User::find()->average();     ///此方法返回指定列的平均值;   User::find()->min();     //此方法返回指定列的最小值 ;   User::find()->max();     //此方法返回指定列的最大值 ;   User::find()->scalar();     //此方法返回值的第一行第一列的查询结果;   User::find()->column();     //此方法返回查询结果中的第一列的值;   User::find()->exists();     //此方法返回一个值指示是否包含查询结果的数据行;   User::find()->batch(10);   //每次取 10 条数据    User::find()->each(10);   //每次取 10 条数据, 迭代查询

直接操作数据库 - 添加

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
1 2 3 4 5 6 7 8 9 10 11 $connection  = \Yii:: $app ->db; $table  '{{%user}}' ; $data  = [      "name"  =>  $name , ]; $result  $connection ->createCommand()->insert( $table $data )->execute();  //返回数量 if ( $result ){      return  [ "status" =>1,  "info" => "保存成功" "url" =>Url::to([ 'user/index' ])]; } else {      return  [ "status" =>0,  "info" => "保存失败" ]; }

直接操作数据库 - 批量插入

1 2 3 4 5 6 7 8 9 10 11 12 13 $connection  = \Yii:: $app ->db; $table  '{{%goods}}' ; $data  = [      "name"  =>  "商品名称" ,      "price"  =>  "25.63" , ]; $lebels  = [ 'name' 'price' ]; $result  $connection ->createCommand()->batchInsert( $table $lebels $data )->execute(); if ( $result ){      return  [ "status" =>1,  "info" => "保存成功" "url" =>Url::to([ 'goods/list' ])]; } else {      return  [ "status" =>0,  "info" => "保存失败" ]; }

直接操作数据库 - 修改

1 2 3 4 5 6 7 8 9 10 11 $connection  = \Yii:: $app ->db; $table  '{{%user}}' ; $data  = [      "name"  =>  $name , ]; $result  $connection ->createCommand()->update( $table , [ 'name' => $data [ "name" ]], [ 'id' => intval ( $data [ "id" ]),  'uid' => $uid ])->execute();  //返回数量 if ( $result ){      return  [ "status" =>1,  "info" => "保存成功" "url" =>Url::to([ 'buyer/goods' 'id' => $data [ "id" ]])]; } else {      return  [ "status" =>0,  "info" => "保存失败" ]; }

直接操作数据库 - 删除

1 2 3 4 5 6 $data  $connection ->createCommand()-> delete ( $table , [ "uid"  =>  $uid "id"  =>  $id ])->execute();  //返回数量 if (! $data ){      return  [ "status" =>0,  "info" => "删除失败 [没有找到相应内容]" ]; } else {      return  [ "status" =>1,  "info" => "成功删除" . $data . "条记录" ]; }

直接操作数据库 - 查询

1 2 3 4 5 6 7 $uid  = Yii:: $app ->user->id; $table  '{{%shop}}' ; $query  new  Query; $data  $query ->from( $table )->where([ "uid"  =>  $uid ])->one(); if ( $data ===false){      throw  new  \yii\web\NotFoundHttpException( '店铺不存在' ); }

设置错误提示

1 2 Yii:: $app ->session->setFlash( 'info' '添加成功' );  //类型可以为:error、danger、success、info、warning return  $this ->refresh();  //返回上一页并刷新

显示上面设置的错误提示

1 2 3 if ( Yii:: $app ->session->hasFlash( 'info' ) ) {      echo  Yii:: $app ->session->getFlash( 'info' ); }

设置模型验证器返回的错误

1 2 3 4 5 6 7 8 9 10 11 12 13 14 if $model ->getErrors() ) {      $msg  '' ;          foreach ( $model ->getErrors()  as  $k  =>  $v ){              $msg  .=  '<p>• ' . $v [0]. '</p>' ;          }      echo  $msg ; }   //或显示第一个错误信息:      if ( $model ->getErrors()){          return  [ "status" =>0,  "info" => array_values ( $model ->getFirstErrors())[0]];                              } else {          return  [ "status" =>1,  "info" => "成功" ];                              }

SCENARIO 场景

1 2 $user  new  User(); $user ->scenario =  "login" //登录场景

REQUEST

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Yii:: $app ->request->get( 'id' , 0); Yii:: $app ->request->post( 'name' ); if (Yii:: $app ->request->isGet){ } if (Yii:: $app ->request->isPost){ } if (Yii:: $app ->request->isAjax){ }   //返回首页 Yii:: $app ->homeUrl   //返回上一页 return  $this ->goBack();   //当字符串中带有空格或者括号等会引起浏览器曲解,就要加上Html::encode进行Html编码的转换,以防出现一些不必要的错误 Html::encode( $this ->title);   //获取IP Yii:: $app ->getRequest()->getUserIP();

获取config/main.php配置的值

1 Yii:: $app ->authManager->assignmentTable

获取config/params.php配置的值

1 Yii:: $app ->params[ 'paramsName' ]

yii2中常用路径

1 2 3 4 5 6 7 8 项目路径:Yii:: $app ->BasePath 或 Yii::getAlias( '@app' ) 输出E:\website\wx\wwwroot\backend 根目录路径:dirname(Yii:: $app ->BasePath) 或 dirname(Yii::getAlias( '@app' )) 输出E:\website\wx\wwwroot 根目录下的任意目录:dirname(Yii:: $app ->BasePath). '/uploads'  或 dirname(Yii::getAlias( '@app' )). '/uploads'   $backend  str_ireplace (dirname(Yii::getAlias( '@frontend' )),  "" , Yii::getAlias( '@backend' )); $url  = Url::to([ '/goods/view' 'id'  => 5]); $url  str_ireplace ( $backend "" $url ); $url  = Yii:: $app ->params[ 'site_url' ] .  $url ;

文件缓存

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 //将信息写入缓存 $cache  = Yii:: $app ->cache; $cache ->set( "cacheName" $cacheData );   //从缓存取出信息 $cache  = Yii:: $app ->cache; $data  $cache ->get( "cacheName" ); if ( $data ){      //读取成功 }   //删除指定的缓存 $cache  = Yii:: $app ->cache; $cache -> delete ( "cacheName" );   yii\caching\Cache::get():通过一个指定的键(key)从缓存中取回一项数据。如果该项数据不存在于缓存中或者已经过期/失效,则返回值 false。  yii\caching\Cache::set():将一项数据指定一个键,存放到缓存中。  yii\caching\Cache::add():如果缓存中未找到该键,则将指定数据存放到缓存中。  yii\caching\Cache::mget():通过指定的多个键从缓存中取回多项数据。  yii\caching\Cache::mset():将多项数据存储到缓存中,每项数据对应一个键。  yii\caching\Cache::madd():将多项数据存储到缓存中,每项数据对应一个键。如果某个键已经存在于缓存中,则该项数据会被跳过。  yii\caching\Cache::exists():返回一个值,指明某个键是否存在于缓存中。  yii\caching\Cache:: delete ():通过一个键,删除缓存中对应的值。  yii\caching\Cache:: flush ():删除缓存中的所有数据。

用户相关

1 2 3 4 5 6 7 8 9 10 11 //判断用户是否登录 if (Yii:: $app ->user->isGuest){      //未登录 } else {      //已登录 }   //取得用户信息 $user  = Yii:: $app ->user->identity; echo  $user ->username; echo  $user [ "username" ];

跳转

1 return  Yii:: $app ->response->redirect([ "/shop/apply" ], 302);
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄