Selasa, 29 Desember 2009

Zend_Db: Akses database MySQL

Zend_Db adalah class yang digunakan untuk mengakses database. Pada contoh kode, saya akan mendemonstasikan bagaimana menggunakan Class ini mengakses database MySQL.

Asumsikan kita memiliki tabel 'books':
-- phpMyAdmin SQL Dump
-- version 3.2.0.1
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Dec 29, 2009 at 11:06 
-- Server version: 5.1.37
-- PHP Version: 5.3.0

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Database: `testosteros`
--

-- --------------------------------------------------------

--
-- Table structure for table `books`
--

CREATE TABLE IF NOT EXISTS `books` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `judul` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Dumping data for table `books`
--

INSERT INTO `books` (`id`, `judul`) VALUES
(1, 'Sengsara membawa nikmat'),
(2, 'Menculik anak perawan');


Penggunaan Zend_Db pada artikel ini adalah menggunakannya langsung pada controller dan kita tidak menggunakan model.

<?php

require_once 'Zend/Db/Adapter/Pdo/Mysql.php'; 
Zend_Loader::loadClass('Zend_Controller_Action');
class databaseController extends Zend_Controller_Action {
 public function indexAction() { 
  try {
   $db = new Zend_Db_Adapter_Pdo_Mysql(array (
    'host' => 'localhost',
    'username' => 'root',
    'password' => '',
    'dbname' => 'testosteros'
   ));
  }
  catch(Zend_Db_Exception $e) {
   echo $e->getMessage();
  }
  $sql = 'select * from books';
  $result = $db->fetchAll($sql);
  
  
  
  
  foreach($result as $res) {
   echo '</br>';
   foreach($res as $d1) {
    echo $d1 . '&nbsp;';
   }
  }
  
 }
}

?>

Kode kita dimulai dengan meng-include-kan Zend/Db/Adapter/Pdo/Mysql.php . Class ini lah yang kita gunakan untuk berusan degan MySQL.

Pada indexAction kita melakukan instantiate Zend_Db_Adapter_Pdo_Mysql  . Kita menggunakan array yang berisi host, username, password dan nama database yang kita gunakan pada argumen konstruktor. Kita tempatkan dalam blok try agar mendapatkan laporan jika terjadi kesalahan (exception).

Untuk melakukan Query kita menggunakan function fetchAll() dengan argumen statement SQL. Fungsi ini mengembalikan (return) array - array dari tabel. Karena itu lah kita menggunakan foreach bersarang (nested) untuk melakukan pemformatan output.


Output Program

Artikel ini hanyalah contoh sangat sederhana menggunakan Zend_Db, penasaran? Ayo mainkan jari Anda dan mulailah mengetik kode.

Tidak ada komentar:

Posting Komentar