You are on page 1of 19

1.

Kh i t o Zend_Db
M: CH N T T C

$db = Zend_Db::factory('Pdo_Mysql', array ('host' => 'localhost', 'username' => 'root', 'password' => '', 'dbname' => 'company_2'));

2. setFetchMode ($constant) FETCH_OBJ Tr kt qu truy vn thnh cc i tng FETCH_ASSOC Tr kt qu truy vn thnh nhng mng lin tc, gi nguyn tn ca field FETCH_NUM Tr kt qu truy vn thnh mng, tn field s c chuyn thnh s lin tc FETCH_BOTH Tr kt qu truy vn thnh mng, mng bao gm kt qu ca 2 kiu FETCH_ASSOC v FETCH_NUM V d 2.1: Chuy n k t qu truy v n thnh m t m ng ch a cc tn field
M: CH N T T C

$db = Zend_Db::factory('Pdo_Mysql', array ('host' => 'localhost', 'username' => 'root', 'password' => '', 'dbname' => 'company_2')); $db->setFetchMode(Zend_Db::FETCH_OBJ);

3. fetchAll($sql,$bind) - Phng thc fetchAll l phng thc ly d liu trong CSDL. N tng t nh cu lnh Select ca MySQL

Tham s :
$sql: Cu lnh truy vn $bind: Mng gi tr truyn vo khi truy vn V d 3.1: Li t k nh ng thnh vin c group_id = g002 v c member_status = 1

MySQL query

M: CH N T T C

$sql = "SELECT member_id, member_name, user_name FROM members WHERE group_id = 'g002' AND member_status = 1"; mysql_query($sql);

Zend_Db
M: CH N T T C

$sql = "SELECT member_id, member_name, user_name FROM members WHERE group_id = 'g002' AND member_status = 1"; $db->fetchAll($sql);

V d 3.2: Li t k nh ng thnh vin c group_id = g002 v c member_status = 1 (truy n tham s )

MySQL query
M: CH N T T C

$group_id = 'g002'; $member_status = 1; $sql = "SELECT member_id, member_name, user_name FROM members WHERE group_id = '" . $group_id . "' AND member_status = " . $member_status; mysql_query($sql);

Zend_Db
M: CH N T T C

$sql = "SELECT member_id, member_name, user_name FROM members WHERE group_id = ?

AND member_status = ?"; $db->fetchAll($sql,array('g002',1));

4. fetchAssoc ($sql,$bind) - Phng thc fetchAssoc tng t nh fetchAll l phng thc ly d liu trong CSDL nhng n s tr v mt mng d liu cho d setFetchMode() ch no i na

Tham s :
$sql: Cu lnh truy vn $bind: Mng gi tr truyn vo khi truy vn V d 4.1: Li t k nh ng thnh vin c group_id = g002 v c member_status = 1 (truy n tham s )
M: CH N T T C

$db->setFetchMode(Zend_Db::FETCH_OBJ); $sql = "SELECT member_id, member_name, user_name FROM members WHERE group_id = ? AND member_status = ?"; $db->fetchAssoc($sql,array('g002',1));

5. fetchCol ($sql,$bind) - Phng thc fetchCol l phng thc ly d liu trong CSDL nhng n ch tr v gi tr ca field u tin trong kt qu truy vn Tham s : $sql: Cu lnh truy vn $bind: Mng gi tr truyn vo khi truy vn V d 5.1: Li t k m thnh vin c group_id = g002 v c member_status = 1 (truy n tham s )
M: CH N T T C

$sql = "SELECT * FROM members WHERE group_id = ? AND member_status = ?"; $db-> fetchCol($sql,array('g002',1));

Hc, hc na, hc mi ...ri hc mu

Hy ni 'Thanks' khi c s tr gip.

VietRuss On Holiday

Bi vit: 193 Ngy tham gia: 27/10/2009 12:21 n t: USB Gi: thanks Nhn: thanks u t r a n g

[Zend_Db] Cc phng thc c bn


gi bi VietRuss 26/11/2009 02:33

6. fetchPairs($sql,$bind) - Phng thc fetchPairs ging phng thc fetchCol ly d liu trong CSDL nhng n ch tr v gi tr ca field th 2 trong kt qu truy vn

Tham s :
$sql: Cu lnh truy vn $bind: Mng gi tr truyn vo khi truy vn V d 6.1: Li t k m thnh vin c group_id = g002 v c member_status = 1 (truy n tham s )

M: CH N T T C

$sql = "SELECT * FROM members WHERE group_id = ? AND member_status = ?"; $db-> fetchPairs($sql,array('g002',1));

7. fetchRow($sql,$bind) - Phng thc fetchRow l phng thc ly d liu trong CSDL nhng n ch tr v mt dng d liu duy nht

Tham s :
$sql: Cu lnh truy vn $bind: Mng gi tr truyn vo khi truy vn V d 7.1: Li t k m thnh vin c group_id = g002 v c member_status = 1 (truy n tham s )
M: CH N T T C

$sql = "SELECT * FROM members WHERE group_id = ? AND member_status = ?"; $db-> fetchRow($sql,array('g002',1));

8. fetchOne ($sql,$bind) - Phng thc fetchOne l phng thc ly d liu trong CSDL nhng n ch tr v mt gi tr duy nht

Tham s :
$sql: Cu lnh truy vn $bind: Mng gi tr truyn vo khi truy vn V d 8.1:

M: CH N T T C

$sql = "SELECT * FROM members WHERE group_id = ? AND member_status = ?"; $db-> fetchOne($sql,array('g002',1))

9. insert($table, $bind) - Phng thc insert l phng thc a d liu vo CSDL

Tham s :
$table: tn bng $bind: Mng gi tr a vo CSDL V d 9.1: Thm m t dng d li u vo b ng groups
M: CH N T T C

$data = array( 'group_id' 'group_name' 'group_status' ); => 'g004', => 'Nghien cuu', => 1

$db->insert('members', $data);

10. lastInsertId ($table, $primaryKey) - Phng thc lastInsertId l phng thc ly ID ca mt record va c thm vo bng phng thc insert()

Tham s :
$table: tn bng $primaryKey: Kha chnh ca bng V d 10.1: Thm m t dng d li u vo b ng members

M: CH N T T C

$data = array( 'member_name' 'user_name' 'email' 'password' 'register_date' 'member_status' 'group_id' ); => 'Pham Vu Khanh', => 'KhanhPham', => 'vukhanh2212@gmail.com', => md5('123456'), => date('Y-m-d 00:00:00'), => 1, => 'g001'

$db->insert('members', $data); echo '<br>' . $id = $db->lastInsertId();

11. update($table, $data,$where) - Phng thc update l phng thc cp nht d liu vo CSDL

Tham s :
$table: tn bng $data: Mng gi tr a vo CSDL $where: iu kin cp nht V d 11.1: Thm m t dng d li u vo b ng groups
M: CH N T T C

$where = " group_id = 'g004'"; $data = array( 'group_name' 'group_status' ); => 'Research', => 1

$db->update('groups', $data, $where);

Hc, hc na, hc mi ...ri hc mu

Hy ni 'Thanks' khi c s tr gip.

VietRuss On Holiday

Bi vit: 193 Ngy tham gia: 27/10/2009 12:21 n t: USB Gi: thanks Nhn: thanks u t r a n g

Re: [Zend_Db] Cc phng thc c bn


gi bi khachau86 03/12/2009 22:11

Nhng v d ny tht d dng r hiu Cm an Anh !

khachau86 Member

Bi vit: 3 Ngy tham gia: 08/11/2009 22:14 Gi: thanks Nhn: thanks u t r a n g

Re: [Zend_Db] Cc phng thc c bn


gi bi thanhloc 31/03/2010 11:55

FETCH_OBJ Tr kt qu truy vn thnh cc i tng FETCH_ASSOC Tr kt qu truy vn thnh nhng mng lin tc, gi nguyn tn ca field

FETCH_NUM Tr kt qu truy vn thnh mng, tn field s c chuyn thnh s lin tc FETCH_BOTH Tr kt qu truy vn thnh mng, mng bao gm kt qu ca 2 kiu FETCH_ASSOC v FETCH_NUM

Em lm ti y nhng vn cha hiu my ci ny lm. vn cha hiu Tr kt qu truy vn thnh cc i tng, Tr kt qu truy vn thnh nhng mng lin tc, gi nguyn tn ca field............ l th no ??? Vic chn cc FETCH_ trn th cch ly d liu ca cc trng hp trn nh th no ???

thanhloc Member

Bi vit: 109 Ngy tham gia: 09/11/2009 15:28 Gi: thanks Nhn: thanks u t r a n g

Re: [Zend_Db] Cc phng thc c bn


gi bi VietRuss 31/03/2010 16:38

thanhloc vi t: FETCH_OBJ Tr kt qu truy vn thnh cc i tng

FETCH_ASSOC Tr kt qu truy vn thnh nhng mng lin tc, gi nguyn tn ca field FETCH_NUM Tr kt qu truy vn thnh mng, tn field s c chuyn thnh s lin tc FETCH_BOTH Tr kt qu truy vn thnh mng, mng bao gm kt qu ca 2 kiu FETCH_ASSOC v FETCH_NUM

4 kiu d liu ny c xut ra t Zend_Db v chuyn dng cho cc cu Select.

V d
M: CH N T T C

$db = Zend_Db::factory('Pdo_Mysql', array ('host' => 'localhost', 'username' => 'root', 'password' => '', 'dbname' => 'company_2'));

$db->setFetchMode(Zend_Db::FETCH_OBJ);

$sql = "SELECT member_id, member_name, user_name FROM members WHERE group_id = 'g002' AND member_status = 1"; $result = $db->fetchAll($sql);

echo '<pre>'; print_r($result); echo '</pre>';

Sau khi chy v d trn bc s thy kt qu hin th. i vi v d trn em dng FETCH_OBJ. Bc ln lt thay dng
M: CH N T T C

$db->setFetchMode(Zend_Db::FETCH_OBJ);

Thnh
M: CH N T T C

$db->setFetchMode(Zend_Db::FETCH_ASSOC);

Thnh
M: CH N T T C

$db->setFetchMode(Zend_Db::FETCH_NUM );

Thnh

M: CH N T T C

$db->setFetchMode(Zend_Db::FETCH_BOTH );

V nhn kt qu in ra bc s hiu v 4 ch ca Zend_Db

Hc, hc na, hc mi ...ri hc mu

Hy ni 'Thanks' khi c s tr gip.

VietRuss On Holiday

Bi vit: 193 Ngy tham gia: 27/10/2009 12:21 n t: USB Gi: thanks Nhn: thanks u t r a n g

Re: [Zend_Db] Cc phng thc c bn


gi bi laktrui 11/07/2010 22:51

Vi FETCH_OBJ th kt qu mun truy vn theo dng Object ($result->row->field). FETCH_ASSOC th theo dng Array ($result['rownum']['fieldname']). FETCH_NUM th theo dng Array ($result['rownum'][fieldnum]). FETCH_BOTH th truy vn theo kiu ASSOC hoc NUM u c

laktrui Member

Bi vit: 12 Ngy tham gia: 08/04/2010 20:05 Gi: thanks Nhn: thanks u t r a n g

Re: [Zend_Db] Cc phng thc c bn


gi bi sherchicken 20/10/2010 16:07

cm n bn VietRuss nhiu

sherchicken Member

Bi vit: 1 Ngy tham gia: 15/10/2010 19:51 Gi: thanks Nhn: thanks u t r a n g

Re: [Zend_Db] Cc phng thc c bn


gi bi ayk 05/03/2011 17:14

VietRuss vi t: 6. fetchPairs($sql,$bind)

V d 11.1: Thm m t dng d li u vo b ng groups


M: CH N T T C

$where = " group_id = 'g004'"; $data = array( 'group_name' 'group_status' ); => 'Research', => 1

$db->update('groups', $data, $where);

Trong VD ny nu nh thay v gi tr xc nh ca group_id l 'g004', nu mnh mun truyn 1 gi tr xc nh nh l bin $id chng hn th mnh truyn th no vy bn? Nu mnh ghi l $where = " group_id = $id th n ch ly c khi bin $id l kiu s, cn nu bin $id l kiu ch th khng truyn c ?

ayk Member

Bi vit: 124 Ngy tham gia: 10/02/2011 22:50 Gi: thanks Nhn: thanks u t r a n g

Re: [Zend_Db] Cc phng thc c bn


gi bi degea9 05/03/2011 17:23

M: CH N T T C

$where = 'group_id='.$id

degea9 On Holiday

Bi vit: 268 Ngy tham gia: 13/11/2010 02:24 Gi: thanks Nhn: thanks

u t r a

n g

Re: [Zend_Db] Cc phng thc c bn


gi bi Mr.L 05/03/2011 17:24

M: CH N T T C

$where = " group_id ='$id' "; $data = array( 'group_name' 'group_status' ); => 'Research', => 1

$db->update('groups', $data, $where);

ban truyen $id nhu trn, v $id l chui nn phi c ' '

Mnh s hng dn bn load 1 bng ln nh, mnh cng l mem mi, hi g t,. bn xem tham kho nh.... Trc ht n gin bn vit ngay trong IndexController lun nh... Bn vit trong indexAction() lun, khi chy v trang n s load ci table ln lun
M: CH N T T C

public function indexAction(){ this->view->dsnhanvien = $this->listnd(); }

mnh tch ring ci hm select table ln cho bn d hiu, ci hm ny bn t trong ci IndexController lun th
M: CH N T T C

private function listnd(){ $db=Zend_Registry::get('connectDB'); $sql="SELECT MA_NV,HTEN_NV,DCHI_NV FROM nhan_vien"; $result=$db->fetchAll($sql); return $result; }

Sau bn to view cho n thui, /scripts/index/index.phtml


M: CH N T T C

<?php foreach($this->dsnhanvien as $dsnhanvien) : ?> <span>Ma Nhan Vien</span><?php echo $this>escape($dsnhanvien['MA_NV']);?><br/> <span>Hten Nhan Vien</span><?php echo $this>escape($dsnhanvien['HTEN_NV']);?><br/> <span>Dchi Nhan Vien</span><?php echo $this>escape($dsnhanvien[DCHI_NV']);?> <?php endforeach;?>

Nh th l c th truy vn c 1 bng t c s d liu v hin th ln trang web i y, y ch l c bn, bn cn xem thm v Zend_DB nh. kt ni n server vo thao tc vi database: trc ht bn vo file application.ini thm on m sau nh:

M: CH N T T C

resources.db.adapter = "PDO_MYSQL" resources.db.params.host = "localhost" resources.db.params.username = "root" ---------> ti khon ngi dng trn server ca bn resources.db.params.password = ----------> mt khu resources.db.params.dbname = "qlttbth" ----------> tn database mun kt ni n resources.db.params.driver_options.1002 = "SET NAMES utf8" ----> thit t hin th ting vit

Sau , m file Bootstrap v thm on m sau na nh:


M: CH N T T C

protected function _initDb() { $dbOption = $this->getOption('resources'); $dbOption = $dbOption['db']; // Setup database $db = Zend_Db::factory($dbOption['adapter'], $dbOption['params']); $db->setFetchMode(Zend_Db::FETCH_ASSOC); $db->query("SET NAMES 'utf8'"); $db->query("SET CHARACTER SET 'utf8'");

Zend_Registry::set('connectDB',$db); //Khi thiet lap che do nay model moi co the su dung duoc Zend_Db_Table::setDefaultAdapter($db); // Return it, so that it can be stored by the bootstrap return $db; }

S DNG ZEND_DB_TABLE CHO CC THAO TC C S D LIU C BN (SELECT, INSERT, UPDATE, DELETE)


A. C s d liu: M t: Trong mi trng i hc gm c cc n v hnh chnh nh: khoa, trung tm, vin, phng ban, qun l thng tin ny ta xy dng c s d liu nh sau: kieudonvi (mskieu, kdv_ten): Lu thng tin cc kiu n v: khoa, trung tm, vin, phng, ... donvi (msdv, dv_ten, mskieu): Mi n v c mt m s n v, tn n v v thuc v mt kiu n v no Yu cu: S dng Zend Framework tin hnh cc cng vic: Xem danh sch cc n v, Thm thng tin n v , Sa thng tin n v , Xa thng tin n v B. Code y ch tp trung hng dn s dng demo lp Zend_Db_Table, cc phn cu hnh, to kt ni c s d liu cc bn c th xem trong m ngun km theo 1. class Tltb_Model_DonVi M: Chn tt c
<?php class Tltb_Model_DonVi extends Zend_Db_Table{

// Tn bng protected $_name = 'donvi'; // Tn kha chnh ca bng, nu kha chnh gm nhiu thuc tnh ta s dng mng array khai bo protected $_primary = 'msdv'; // m s phn t public function countItem($arrParam = null, $options = null){ $db = Zend_Registry::get('connectDb'); $select = $db->select() ->from('donvi',array('COUNT(msdv) AS totalItem')); $result = $db->fetchOne($select); return $result; } // Danh sch n v public function listItem($arrParam = null, $options = null){ $db = Zend_Registry::get('connectDb'); if($options['task'] == 'donvi-list'){ $select = $db->select() ->from('donvi as dv',array('msdv','dv_ten')) ->joinLeft('kieudonvi as kdv', 'kdv.mskieu = dv.mskieu','kdv_ten'); $result = $db->fetchAll($select); } return $result; } // Lu d liu vo database public function saveItem($arrParam = null, $options = null){ // Thm thng tin n v if($options['task'] == 'donvi-add'){ $row = $this->fetchNew(); $row->msdv = $arrParam['msdv']; $row->dv_ten = $arrParam['dv_ten']; $row->mskieu = $arrParam['mskieu']; $row->save(); } // Sa thng tin n viij khi bit m n v if($options['task'] == 'donvi-edit'){ $where = ' msdv = ' . '"'. $arrParam['msdv']. '"' ; $row = $this->fetchRow($where); $row->dv_ten = $arrParam['dv_ten']; $row->mskieu = $arrParam['mskieu']; $row->save(); } } // Xa thng tin n v khi bit m s n v public function deleteItem($arrParam = null, $options = null){ if($options['task'] == 'donvi-delete'){ $where = ' msdv = ' . '"' . $arrParam['msdv'] . '"'; $this->delete($where); }

2. class DonViController.php M: Chn tt c


<?php class DonViController extends Zend_Controller_Action{ // Mng tham s nhn c mi Action: protected $_arrParam; // ng dn ca Controller: protected $_currentController; // ng dn ca Action chnh: protected $_actionMain; public function init(){ // Khng hin th layout $this->_helper->layout->disableLayout(); // Khng hin th view $this->_helper->viewRenderer->setNoRender(); $this->_arrParam = $this->_request->getParams(); $this->_currentController = '/'. $this->_arrParam['module'] . '/' . $this->_arrParam['controller']; $this->_actionMain = '/'. $this->_arrParam['module'] . '/' . $this->_arrParam['controller'] . '/index'; $this->_namespace = $this->_arrParam['module'] . '-' . $this->_arrParam['controller']; // Truyn ra view $this->view->arrParam = $this->_arrParam; $this->view->currentController = $this->_currentController; } $this->view->actionMain = $this->_actionMain;

// Hin th danh sch n v // http://localhost/donvi/donvi/index public function indexAction(){ // To i tng thuc Model_DonVi $tblDonVi = new Tltb_Model_DonVi(); // Truyn ra view $this->view->Items = $tblDonVi->listItem($this->_arrParam, array('task'=>'donvi-list')); // In danh sch n v echo "<pre>"; print_r($this->view->Items); echo "</pre>"; }

// Thm n v // Thc hin: http://localhost/donvi/donvi/add public function addAction(){ $tblDonVi = new Tltb_Model_DonVi(); // Mng thng tin n v cn thm, n gin ti t to mng ny, ngai thc t mng ny do ngi dng // nhp vo v chng ta s phi s dng Zend_Validate kim tra gi tr hp l $arrParam = array( 'msdv' => 'DV201', 'dv_ten' => 'Khoa Gio dc th cht', 'mskieu' => 'KDV01' ); //Gi phng thc saveItem - trng hp thm n v $tblDonVi->saveItem($arrParam,array('task'=>'donvi-add')); } // Sa thng tin DonVi // Thc hin: http://localhost/donvi/donvi/edit public function editAction(){ $tblDonVi = new Tltb_Model_DonVi(); $arrParam = array( 'msdv' => 'DV201', 'dv_ten' => 'Khoa Th dc th thao', 'mskieu' => 'KDV01' ); $tblDonVi->saveItem($arrParam, array('task'=>'donvi-edit')); } // delecteAction: Xa n v // Thc hin: http://localhost/donvi/donvi/delete public function deleteAction(){ $tblDonVi = new Tltb_Model_DonVi(); $arrParam = array( 'msdv' => 'DV201', ); $tblDonVi->deleteItem($arrParam,array('task'=>'donvidelete')); } }

San pham sanpham/sp1 Sp1 sanpham/sp1 Sp2 sanpham/sp2 Sp2 sanpham/sp3 ngoc.ha@gen.vn

You might also like