zoukankan      html  css  js  c++  java
  • Yii框架 CURD

    1、Yii框架的sql语句

         说明:CDbCommand表示一个针对数据库执行的SQL语句

    2、相关连接

        yii连接:http://www.php100.com/manual/yii/CDbCommand.html

        源代码:framework/db/CDbCommand.php

    3、调用createCommand() 方法

         (1)它通常通过调用CDbConnection::createCommand创建

         (2)要执行一条非查询的SQL(如:insert,delete,update),调用execute

         (3)要执行一条SQL语句返回结果数据集(如:SELECT), 使用 query 或它的简便版本 queryRow, queryColumn或者queryScalar

                queryRow:执行此SQL语句并返回结果的第一行

                queryColumn:执行SQL语句并返回结果的第一列

                queryAll:执行SQL语句并返回所有行

                query:执行SQL语句并返回查询结果

                queryScalar:执行此SQL语句并返回第一行数据的第一列的值

    格式如下:

    $user = Yii::app()->db->createCommand()
        ->select('username, password')
        ->from('tbl_user')
        ->where('id=:id', array(':id'=>1))
        ->queryRow();

    相关 CURD操作如下:

    一、select 操作查询数据集合

    查询所有信息

    $admin=Admin::model()->findAll($condition,$params);
    该方法是根据一个 条件查询一个集合
    如:
    findAll(username=:name,array(:name=>$username))
    根据主键查询所有信息
    $admin=Admin::model()->findAllByPk($postIDs,$condition,$params);
    findAllByPk($id,name like :name and age=:age,array(:name=>$name,age=>$age));
    该方法是根据主键查询一个集合,可以使用多个主键
    如:findAllByPk(array(1,2));

    根据查询条件查询所有信息

    $admin=Admin::model()-> findAllByAttributes($attributes,$condition,$params);
    该方法是根据条件查询一个集合,可以是多个条件,把条件放到数组里面,
    如:
    findAllByAttributes(array(username=>admin));

    根据sql语句查询信息

    $admin=Admin::model()->findAllBySql($sql,$params);
    该方法是根据SQL语句查询一个数组
    如:findAllBySql(select *from admin where username=:name,array(:name=>admin));

    select查询对象的方法

    $admin=Admin::model()->findByPk($postID,$condition,$params);
    根据主键查询出一个对象
    如:findByPk(1);  
    $row=Admin::model()->find($condition,$params);
    根据一个条件查询出一组数据,可能是多个,但是他只返回第一行数据
    如:find(username=:name,array(:name=>admin));

    拼一个获得SQL的方法,在根据find查询出一个对象

    $criteria=new CDbCriteria;
    $criteria->select=username; // only select the title column
    $criteria->condition=username=:username;
    $criteria->params=array(:username=>admin);
    $post=Post::model()->find($criteria); // $params isnot needed

    判断是否找到数据

    $exists=Post::model()->exists($condition,$params);

    该方法是根据一个条件查询查询得到的数组有没有数据,如果有数据返回一个true,否则没有找到

    二、 create 添加的方法 
     
    $admin=newAdmin;
    $admin->username=$username;
    $admin->password=$password;
    if($admin->save()){
    echo 添加成功;
    }else{
    echo 添加失败;
    }

    三、update 修改的方法

    (1)

    Post::model()->updateAll($attributes,$condition,$params);
    $count =Admin::model()->updateAll(array(username=>11111′,password=>11111′),password=:pass,array(:pass=>1111a1′));
    if($count>0){
    echo 修改成功;
    }else{
    echo 修改失败;
    }

    (2)

    Post::model()->updateByPk($pk,$attributes,$condition,$params);
    $count =Admin::model()->updateByPk(1,array(username=>admin,password=>admin));
    $count =Admin::model()->updateByPk(array(1,2),array(username=>admin,password=>admin),username=:name,array(:name=>admin));
    if($count>0){
    echo 修改成功;
    }else{
    echo 修改失败;
    }
    $pk 代表主键,可以是一个也可以是一个集合,$attributes代表是要修改的字段的集合$condition代表条件$params传入的值

    (3)

    Post::model()->updateCounters($counters,$condition,$params);
    $count=Admin::model()->updateCounters(array(status=>1),username=:name,array(:name=>admin));
    if($count>0){
    echo 修改成功;
    }else{
    echo 修改失败;
    }
    array(status=>1)代表数据库中的admin表根据条件username=admin,查询出的所有结果status字段都自加1

    (4)

    // 第一,建立一个连接:
    $connection = Yii::app()->db;
    // 第二,写SQL语句,比如:
    $sql="INSERT INTO tbl_user (username, email) VALUES(:username,:email)";
    // 第三,创建CDbCommand对象用于执行SQL
    $command=$connection->createCommand($sql);
    // 接下来,将SQL语句中的形式参数,替换为实际参数
    $command->bindParam(":username",$username,PDO::PARAM STR);   // 这与PDO有点不同,PDO中不带冒号
    $command->bindParam(":email",$email,PDO::PARAM STR);    // 同样
    // 最后,执行
    $command->execute();

    四、delete 删除的方法

    (1)

    Post::model()->deleteAll($condition,$params);
    $count = Admin::model()->deleteAll(username=:nameandpassword=:pass,array(:name=>admin,:pass=>admin));
    $id=1,2,3
    deleteAll(id in(.$id.));删除id为这些的数据
    if($count>0){
    echo 删除成功;
    }else{
    echo 删除失败;
    }

    (2)

    Post::model()->deleteByPk($pk,$condition,$params);
    $count = Admin::model()->deleteByPk(1);
    $count =Admin::model()->deleteByPk(array(1,2),username=:name,array(:name=>admin));
    if($count>0){
    echo 删除成功;
    }else{
    echo 删除失败;
    }
         
  • 相关阅读:
    1022. D进制的A+B (20)
    1032. 挖掘机技术哪家强(20)
    1001. 害死人不偿命的(3n+1)猜想 (15)
    结构-06. 复数四则运算(15)
    结构-05. 有理数均值(20)
    结构-04. 通讯录的录入与显示(10)
    结构-03. 平面向量加法(10)
    软考错题合集之13-05-AM
    软考笔记第八天之法律发规与标准化知识
    软考笔记第七天之程序设计语言与语言处理程序基础
  • 原文地址:https://www.cnblogs.com/lccjob/p/4739525.html
Copyright © 2011-2022 走看看