首页 > 代码库 > YII 数据处理DAO

YII 数据处理DAO

Yii框架对数据处理可以通过两种方式:ARDAO(数据处理对象)

前者主要是对简单sql语句处理

后者才是处理复杂sql语句

 

两种使用的基础是PDOphp data  object   : php数据对象

PDO就是为了兼容php处理各种数据库(mysql  oracle  sqlserver等等)

我们定义一条sql语句就可以 在mysqloraclesqlserver不同数据库来运行。

 

AR:处理数据CActiveRecord

DAO对数据的处理 CdbCommand  CdbDataReader

query() 针对查询

execute()  针对 添加、修改、删除

 

 

PDO预处理进行信息的添加、更新、删除。




 

  /*
     * 数据处理DAO  实现数据查询
     */
    function actionCat(){
        //通过DAO方式读取数据
        $sql = "select * from {{goods}}";
        //1. 创建DAO对象
        $d_obj = Yii::app()->db->createCommand($sql);
        
        //2. 执行sql语句
        //   查询:dao对象query() 返回一个结果对象CDbDataReader
        //         queryAll()  直接获得全部记录结果
        //         queryRow()  获得第一条记录结果
        //         queryColum() 获得第一列的记录结果
        //   非查询:execute()
        
        // read():通过具体CDbDataReader这个类里边的方法获得具体结果
        // readAll(): 获得全部记录结果
        //$data_obj = $d_obj -> query();
        //$info = $data_obj -> read();  //获得一条记录结果,一维数组
        //$info = $data_obj->readAll();  //获得全部记录结果,二维数组
        
        //$info = $d_obj -> queryAll();  //直接获得全部信息结果
        //$info = $d_obj -> queryRow();  //直接第一条记录结果
        
        //var_dump($info);
        //var_dump($data_obj);
    }
    
    /*
     * 通过DAO实现数据的添加 
     */
    function actionCat2(){
        $sql = "insert into {{goods}} (goods_name,goods_price) values (:name,:price)";
        $d_obj = Yii::app()->db -> createCommand($sql);
        $name = "apple678";
        $price = 5050;
        //把定义的两个变量绑定到占位符里边
        $d_obj -> bindParam(':name',$name,PDO::PARAM_STR);
        $d_obj -> bindParam(':price',$price,PDO::PARAM_INT);
        $d_obj -> execute();
        
        $name = "诺基亚678";
        $price = 3999;
        //把定义的两个变量绑定到占位符里边
        $d_obj -> bindParam(':name',$name,PDO::PARAM_STR);
        $d_obj -> bindParam(':price',$price,PDO::PARAM_INT);
        $d_obj -> execute();
        
//        $num = $d_obj -> execute();  //会返回当前受影响的记录数目
//
//        //可以使用PDO预处理方式实现信息添加
//        $sql = "insert into {{article}} (article_title,article_content) values (:title,:content) ";
//        $command = $connection -> createCommand($sql);
//        $title = "rr";
//        $content = "rr";
//        $command ->bindParam(":title", $title, PDO::PARAM_STR);
//        $command ->bindParam(":content", $content, PDO::PARAM_STR);
//        $rowCount = $command -> execute();

        
    }



YII 数据处理DAO