Put some MVC in your PHP
Trial by separation
Create a "controllers" directory and a "views" directory in the Apache web server document root
htdocs by default. We shall create the view scripts in the "views" directory and controllers in the "controllers" directory. Create action controller, "database", for the business logic of the MVC application. Create a
DatabaseController class that extends the
Zend_Controller_Action class and add action functions
deleteAction to the class.
The controller actions will be invoked from view scripts, which provide a user interface to specify the table row to be added, selected, updated and deleted. Create the view scripts
deleteView.php in the "views" directory. The view scripts and other resource files are available in a zipped resources file here.
Add a row
First, we shall add a row to the
Catalog table. In the
insertView.php add a form with input fields for the table row to be added. The "action" attribute of the
<form> element specifies "database/insert", which corresponds to the "insert" action of the "database" controller. In the
insertAction function create a
Zend_Db adapter, which represents a connection with Oracle database, using the
$params = array ('host'=>'localhost','username'=>'OE','password'=>'pw','dbname'=>'orcl'); $db=Zend_Db::factory('Oracle', $params);
The first argument specifies the base name for the adapter class - "Oracle" for the Oracle database. The second argument specifies the adapter parameters. Retrieve the input fields specified in the
$_POST['field'] and create an associative array,
$row, for the columns that constitute a row in the database table. Specify the database table to be updated and insert the new row using the
insert() method of the
Zend_Db adapter class.
$table = 'Catalog'; $rowsAffected = $db->insert($table, $row);
The first argument of the
insert() method is the database table and the second argument is the associative array that maps column names to values. Invoke the
insertView.php with URL
http://localhost/views/insertView.php. To add a row specify the column values and click on create.
Adding a row
Retrieve a row
Next, retrieve a row from the catalog table using the Zend Framework. Create a
Zend_Db_Select object from the
Zend_Db adapter object using the
$select = $db->select();
Zend_Db_Select object is used to construct a SQL
SELECT statement. Specify the
FROM clause using the
from() method and the
WHERE clause using the
$select->from('Catalog', '*'); $select->where('ID = ?', $_POST['id']);
Create the SQL query string from the
Zend_Db_Select object using the
_toString() method. Run the SQL query using the
fetchAll() method and query results will be returned as a row set.
$sql = $select->__toString(); $rowset = $db->fetchAll($sql);
Zend_View object to render a view script and specify the directory containing the view scripts. The
Zend_View class represents the "view" component of the model-view-controller pattern.
$view = new Zend_View(); $view->setScriptPath('views');