YII框架

it2022-05-09  22

//1.该方法是根据一个条件查询一个集合 $admin =Admin::model()->findAll( $condition , $params ); $admin =Admin::model()->findAll( "username=:name" , array ( ":name" => $username ));   //2. findAllByPk(该方法是根据主键查询一个集合,可以使用多个主键) $admin =Admin::model()->findAllByPk( $postIDs , $condition , $params ); $admin =Admin::model()->findAllByPk( $id , "name like :name and age=:age" , array ( ':name' => $name , 'age' => $age )); $admin =Admin::model()->findAllByPk( array (1,2));   //3.findAllByAttributes (该方法是根据条件查询一个集合,可以是多个条件,把条件放到数组里面) $admin =Admin::model()->findAllByAttributes( $attributes , $condition , $params ); $admin =Admin::model()->findAllByAttributes( array ( 'username' => 'admin' ));   //4.findAllBySql (该方法是根据SQL语句查询一个数组) $admin =Admin::model()->findAllBySql( $sql , $params ); $admin =Admin::model()->findAllBySql( "select * from admin where username like :name" , array ( ':name' => '�%' ));

二、查询对象的方法

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 //根据主键查询出一个对象,如:findByPk(1); $admin =Admin::model()->findByPk( $postID , $condition , $params ); $admin =Admin::model()->findByPk(1);   //根据一个条件查询出一组数据,可能是多个,但是他只返回第一行数据 $row =Admin::model()->find( $condition , $params ); $row =Admin::model()->find( 'username=:name' , array ( ':name' => 'admin' ));   //该方法是根据条件查询一组数据,可以是多个条件,把条件放到数组里面,查询的也是第一条数据 $admin =Admin::model()->findByAttributes( $attributes , $condition , $params ); $admin =Admin::model()->findByAttributes( array ( 'username' => 'admin' ));   //该方法是根据SQL语句查询一组数据,他查询的也是第一条数据 $admin =Admin::model()->findBySql( $sql , $params ); $admin =Admin::model()->findBySql( "select * from admin where 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'" ); $criteria ->order =  "id DESC" ; $criteria ->limit =  "3" ; $post =Post::model()->find( $criteria );  // $params isnot needed 

三、查询个数,判断查询是否有结果

1 2 3 4 5 6 7 8 9 10 11 //该方法是根据一个条件查询一个集合有多少条记录,返回一个int型数字 $n =Post::model()-> count ( $condition , $params ); $n =Post::model()-> count ( "username=:name" , array ( ":name" => $username ));   //该方法是根据SQL语句查询一个集合有多少条记录,返回一个int型数字 $n =Post::model()->countBySql( $sql , $params ); $n =Post::model()->countBySql( "select * from admin where username=:name" , array ( ':name' => 'admin' ));   //该方法是根据一个条件查询查询得到的数组有没有数据,如果有数据返回一个true,否则没有找到 $exists =Post::model()->exists( $condition , $params ); $exists =Post::model()->exists( "name=:name" , array ( ":name" => $username ));

四、添加的方法

1 2 3 4 $admin  =  new  Admin;        $admin ->username =  $username ; $admin ->password =  $password ; if ( $admin ->save() > 0){  echo  "添加成功" ; } else {  echo  "添加失败" ; }

五、修改的方法

1 2 3 4 5 6 7 8 9 10 11 12 13 14 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  "修改失败" ; }   //$pk主键,可以是一个也可以是一个集合,$attributes是要修改的字段的集合,$condition条件,$params传入的值 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  "修改失败" ; }   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

六、删除的方法

1 2 3 4 5 6 7 8 9 10 11 //deleteAll Post::model()->deleteAll( $condition , $params ); $count  = Admin::model()->deleteAll( 'username=:name and password=:pass' , array ( ':name' => 'admin' , ':pass' => 'admin' )); $count  = Admin::model()->deleteAll( 'id in("1,2,3")' ); //删除id为这些的数据 if ( $count >0){ echo  "删除成功" ; } else {  echo  "删除失败" ; }   //deleteByPk 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  "删除失败" ; }

七、更多方法

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 //createCommand(执行原生的SQL语句) $sql  =  "SELECT u.account,i.* FROM sys_user as u left join user_info as i on u.id=i.user_id" ; $rows =Yii::app()->db->createCommand( $sql )->query(); foreach  ( $rows  as  $k  =>  $v ){      echo  $v [ 'add_time' ]; }   //事务的基本结构(多表更新插入操作请使用事务处理) $dbTrans  = Yii::app()->db->beginTransaction(); try {      $post  =  new  Post;      $post -> 'title'  =  'Hello dodobook!!!' ;      if (! $post ->save())  throw  new  Exception( "Error Processing Request" , 1);      $dbTrans ->commit(); //  $this->_end(0,'添加成功!!!'); } catch (Exception  $e ){      $dbTrans ->rollback(); //  $this->_end($e->getCode(),$e->getMessage()); }

转载于:https://www.cnblogs.com/yyp520thy/p/7878017.html


最新回复(0)