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;
    }
}
相關文章
相關標籤/搜索