Home > Zend framework > Zend commit -transaction db

Zend commit -transaction db

nhantam giới thiệu với các bạn một cách commit với zend db hay còn gọi là zend transaction

Các bạn tham khảo thêm thư  viện zend db tại link: http://framework.zend.com/manual/1.9/en/zend.db.html

 

Cây thư mục trang web panpic.vn của nhantam

my_web/modules/admin/  //phần quản lý nội dung administrator, hay còn gọi là back-end
my_web/modules/front/  //phần giao diện người dùng hay còn gọi là front-end

my_web /configs/panpic.ini
my_web/modules/front/Boostrap.php
my_web/modules/admin/models/Admin_Model_News.php
my_web/modules/admin/controller/Admin_NewsController.php

0. tạo table table_news()
Engine: InnoDB
Primary Key: kiểu dữ liệu là int, AUTO_INCREMENT

Hình ảnh
zend table

 

1.  khai báo file panpi.ini


[database]
db.adapter = PDO_MYSQL
db.params.host = "localhost"
db.params.username = "root"
db.params.password = "1234567"
db.params.dbname = "db_panpic"
db.params.charset = "utf8"
db.params.prifex = "pp_"

Hình
zend config ini

 

2. Khai báo Boostrap.php


class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{


/**
* connect to database
* @return bridge connection
*/
protected function _initDb() {

// đọc giá chuỗi trong file panpic.ini từ đoạn [database]
$config = new Zend_Config_Ini(APPLICATION_PATH.'/configs/panpic.ini', 'database');
$config = $config->toArray(); // Chuyển thành mảng array
$params = $config['db']['params'];
$params['options'] = array(Zend_Db::ALLOW_SERIALIZATION => false);

$db = Zend_Db::factory($config['db']['adapter'], $params); // connection database
Zend_Db_Table::setDefaultAdapter($db);
Zend_Registry::set('db', $db); // khai báo biến db (connection)
$db->closeConnection(); // đóng kết nối
}
}

Hình ảnh

zend bootstrap

3. Khai báo Admin_Model_News.php


function init(){
$this->_db = Zend_Registry::get('db'); //connection
}
/**
* Insert News
*
* @param array $data
* @return bool
*/
function insertCommit($data){

$this->_db->beginTransaction();

try {
$this->_db->insert('table_news', $data);
$this->_db->commit();
$news_id = $this->_db->lastInsertId('table_news');
return $news_id;
} catch (Exception $e){
$this->_db->rollBack();
return false;
}
}


/**
* Update News
*
* @param array $data
* @param int $news_id
* @return bool
*/
function updateCommit($data, $news_id){

$this->_db->beginTransaction();

try {
$this->_db->update('table_news', $data, "news_id =$news_id");
$this->_db->commit();
return true;
} catch (Exception $e){
$this->_db->rollBack();
return false;
}
}

 

Hình ảnh

zend model

4. Khai báo Admin News Controller


<?php
/**
* Controller News
* Last update Jul 10 2014
*
* @package admin/controller
* @copyright Panpic.vn
* @author thandongdv2004@yahoo.com
* @author pos PHP Developer
* @since Feb 15 2011
*/

class Admin_NewsController extends Zend_Controller_Action {


private $_model;


function init(){
//.....
$this->_model = Admin_Model_Weblink::getInstance(); // instance model news
}
/**
* Add News
*/
function addAction() {

$title = $this->_getParam('title');
$content= $this->_getParam('content');

$data = array(
'title' => $title,
'content' => $content
);

$update = $this->_model->insertCommit($data);
}
}

//END class

 

Chúc các bạn thành công

 

nhantam
PHP Developer
thiết kế web

Advertisements
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: