YII 数据处理DAO

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

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

后者才是处理复杂sql语句

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

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

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

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

    }
时间: 2024-07-30 13:50:30

YII 数据处理DAO的相关文章

Yii的Dao查询

$connection=Yii::app()->db;$command=$connection->createCommand('select media_type from sand_media');$column=$command->queryColumn(); 将以数组的形式返回所有的media_type

yii框架数据库操作数据访问对象(DAO)简单总结

Yii提供了强大的数据库编程支持.Yii数据访问对象(DAO)建立在PHP的数据对象(PDO)extension上,使得在一个单一的统一的接口可以访问不同的数据库管理系统(DBMS).使用Yii的DAO开发的应用程序可以很容易地切换使用不同的数据库管理系统,而不需要修改数据访问代码.Yii 的Active Record( AR ),实现了被广泛采用的对象关系映射(ORM)办法,进一步简化数据库编程.按照约定,一个类代表一个表,一个实例代表一行数据.Yii AR消除了大部分用于处理CRUD(创建,

Yii的学习(2)--数据访问对象 (DAO)

摘自Yii官网:http://www.yiiframework.com/doc/guide/1.1/zh_cn/database.dao Yii提供了强大的数据库编程支持.Yii数据访问对象(DAO)建立在PHP的数据对象(PDO)extension上,使得在一个单一的统一的接口可以访问不同的数据库管理系统(DBMS).使用Yii的DAO开发的应用程序可以很容易地切换使用不同的数据库管理系统,而不需要修改数据访问代码. 数据访问对象(DAO) 对访问存储在不同数据库管理系统(DBMS)中的数据提

YII框架源码分析(百度PHP大牛创作-原版-无广告无水印)

                        YII 框架源码分析             百度联盟事业部--黄银锋   目 录 1. 引言 3 1.1.Yii 简介 3 1.2.本文内容与结构 3 2.组件化与模块化 4 2.1.框架加载和运行流程 4 2.2.YiiBase 静态类 5 2.3.组件 6 2.4.模块 9 2.5 .App 应用   10 2.6 .WebApp 应用   11 3.系统组件 13 3.1.日志路由组件  13 3.2.Url 管理组件  15 3.3.异常

YII框架分析笔记4:ar模型和db

YII中实现两种类型的模型,分别是表单模型和活动记录.在持久化数据方面,YII只实现了活动记录,对于复杂的数据关系可以用框架提供的DAO来自己写model,对应集成doctrine这样的ORM还没有仔细研究过. ar模型 框架中的model是CModel子类,CModel主要是一些验证与错误处理,并实现迭代器和数组访问接口,活动记录模型CActiveRecord是AR模型的基类. 每个AR类代表一个单独的数据表,一个AR实例则代表那个表中的一行.AR是一种对象关系映射(ORM)的设计模式,它负责

Hibernate(开放源代码的对象关系映射框架)

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库. Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久

SSH框架总结(框架分析+环境搭建+实例源代码下载)

首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是眼下较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. 集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域模块层(实体层). Struts作为系统的总体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持.Spring一方面作为一个轻量级的IoC容器,负责查找.定位.创建和管理对象及

作业08之《MVC实现用户权限》

1. 赋给用户一个userid,在用户角色表将用户和角色关联起来,在角色权限表中将角色和权限对应起来,权限表中存储的是左边菜单栏的名称. 2. 在判断权限时,通过用户的userid,获取其角色id,然后判断当前访问的功能即对应的权限. 数据表: 1.用户表 2.角色表 3.权限表 4.用户角色表 5.角色权限表 MVC开发模式下的实现: 1)      用户验证:用户登录时,首先通过登录页面实现交互界面,传送请求(包含用户账号.密码等)和接收响应,然后Struts根据配置文件(struts-co

SSH框架总结(框架分析+环境搭建+实例源码下载)

首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. 集成SSH框架的系统从职责上分为四层:表示层.业务逻辑层.数据持久层和域模块层(实体层). Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持.Spring一方面作为一个轻量级的IoC容器,负责查找.定位.创建和管理对象及