[yii2]YII 操作数据库的三种方式

时间:2019-05-17  来源:SEO资讯  阅读:

Getting data from a database
Most applications today use databases. Be it a small website or a social network, at least some parts are powered by databases. Yii introduces three ways which allow you to work with databases:
Active Record
Query builder
SQL via DAO

 代码如下 class DbController extends Controller
{
    protected function afterAction($action)
    {
        $time = sprintf("%0.5f", Yii::getLogger()->getExecutionTime());
        $memory = round(memory_get_peak_usage()/(1024*1024),2)."MB";
        echo "Time: $time, memory: $memory";
        parent::afterAction($action);
    }
 
    public function actionAr()
    {
        $actors = Actor::model()->findAll(array("with" => "films",
                "order" => "t.first_name, t.last_name, films.title"));
        echo "
    ";
            foreach($actors as $actor)
            {
                echo "";
                echo $actor->first_name." ".$actor->last_name;
                echo "
      ";
                  foreach($actor->films as $film)
                  {
                      echo "";
                      echo $film->title;
                      echo "";
                  }
                  echo "
    ";
                echo "";
            }
            echo "
";
    }
 
    public function actionQueryBuilder()
    {
        $rows = Yii::app()->db->createCommand()
                ->from("actor")
                ->join("film_actor", "actor.actor_id=film_actor.actor_id")
                ->leftJoin("film", "film.film_id=film_actor.film_id")
                ->order("actor.first_name, actor.last_name, film.title")
                ->queryAll();
        $this->renderRows($rows);
    }
 
    public function actionSql()
    {
        $sql = "SELECT * FROM actor a
             JOIN film_actor fa ON fa.actor_id = a.actor_id
             JOIN film f ON fa.film_id = f.film_id
             ORDER BY a.first_name, a.last_name, f.title";
        $rows = Yii::app()->db->createCommand($sql)->queryAll();
        $this->renderRows($rows);
    }
 
    public function renderRows($rows)
    {
        $lastActorName = null;
        echo "
    ";
            foreach($rows as $row)
            {
                $actorName = $row["first_name"]." ".$row["last_name"];
                if($actorName!=$lastActorName){
                    if($lastActorName!==null){
                        echo "
";
                    echo "";
                }
                $lastActorName = $actorName;
                echo "";
                echo $actorName;
                echo "
    ";
                }
                echo "";
                echo $row["title"];
                echo "";
            }
            echo "
";
    }
}

[yii2]YII 操作数据库的三种方式

http://m.bbyears.com/seo/51611.html

推荐访问:倚天屠龙记 宜家 易企秀 yii框架 yii2打印sql语句 一点资讯
相关阅读 猜你喜欢
本类排行 本类最新