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;
}
}