zendframework——Zend_Db_Table

Zend_Db_Table是一个抽象类,必须继承它后才可以使用


①  类名 

<?php
//类名最好跟数据库表名一致,控制器类调用该类时才不会报错
class Goods extends Zend_Db_Table{ 

②  表名和主键  

    protected $_name="goods";   //表名
    protected $_primary="id";   //主键

③  [主键查询] -> find($id)

/**
     * 【主键查询商品信息】 find($id)
     *  @find($id):单条记录
     *  @find(array($id1,$id2,$id3)):多条记录
     */
    public function selectGoodsById($id){                
        // SELECT * FROM goods 
        //    WHERE id = $id
        $row=$this->find($id);
    
        // SELECT * FROM goods WHERE id in($id1,$id2,$id3)
        //$rowset=$this->find(array($id1,$id2,$id3));        
        
        return $row;
    }

④  [条件查询] -> fetchRow($where, $order)

    /**
     * 【条件查找商品信息】 fetchRow($where,$order)
     * 
     * @fetchRow($where,$order):非主键的条件来返回满足条件的第一行数据
     * @zend framework 不会对where语句进行加引号处理,所以你需要 通过zend_db_adapter进行数据处理.
     */
    public function selectGoodsByOtherColumn($id){         
        // SELECT * FROM goods 
        //   WHERE id=$id 
        //   ORDER BY id
        $db=$this->getAdapter();
        $where=$db->quoteInto("id=?",$id);
        $order='id';
        $row=$this->fetchRow($where, $order);
        
        return $row;
    }

⑤  [查询全部] -> fetchAll($where, $order, $count, $offset)

    /**
     * 【查询所有商品】
     * 
     * fetchAll($where,$order,$count,$offset)
     */
    public function selectAllGoods(){
    // SELECT * FROM round_table
    //     WHERE noble_title = "Sir"
    //     ORDER BY first_name
    //     LIMIT 10 OFFSET 20        
        $where=null; //where条件
        $order='id'; //排序
        $count=10;   //查询的数量
        $offset=20;  //偏移量
        
        $rowset=$this->fetchAll($where, $order, $count, $offset);
        
        return $rowset;
    }

⑥  [插入数据] -> insert($data)

    /**
     * 【添加商品】 insert($data)
     *                                                                                    
     * @ (zend framework) 会自动对数据进行加引号处理, 并返回插入的最后一行的id值                                   
     *   (注意:这里不同于 zend_db_adapter::insert方法,后者返回的是插入的行数). 
     */    
    public function insertGoods($id,$gname,$price,$amount){                     
        //INSERT INTO goods (id,gname,price,amount) VALUES($id,$gname,$price,$amount);
        $rid=$this->insert(array('id'=>$id,'gname'=>$gname,'price'=>$price,'amount'=>$amount));
        
        return $rid;
    }        

⑦  [修改数据] -> update($set, $where) 

    /**
     * 【修改商品】 update($set,$where)
     * 
     * @zend framework 不会对where语句进行加引号处理,所以你需要 通过zend_db_adapter进行数据处理.
     * (通过一个where条件决定删除的行,并返回受影响行数)
    */
    public function updateGoods($id,$gname,$price,$amount){        
        // update goods set id=$id, gname=$gname, price=$price, amount=$amount;        
        $set=array( "id"=>$id, "gname"=>$gname, "price"=>$price, "amount"=>$amount);        
        $db=$this->getAdapter();
        $where=$db->quoteInto("id=?",$id);
        $rows_affcted=$this->update($set, $where);
       
        return $rows_affcted;
    }


⑧  [删除数据] -> delete($where)


    /**
     * 【删除商品】 delete($where)
     * 
     * @zend framework 不会对where语句进行加引号处理,所以你需要 通过zend_db_adapter进行数据处理.
     * (通过一个where条件决定删除的行,并返回受影响行数)
     */
    public function deleteGoods($id){        
        // DELETE FROM goods WHERE id=$id;
        $db=$this->getAdapter();
        $where=$db->quoteInto("id",$id);
        $rows_affcted=$this->delete($where);
        
        return $rows_affcted;
    }
}

你可能感兴趣的:(zendframework——Zend_Db_Table)