Database Abstraction

For our shopping cart we will use a simple database abstraction library. Although this tutorial only use
MySQL but using an abstraction layer is still a good thing. We do this just in sow we can easily migrate to another database.
In case you don’t know, a database abstraction is simply making our own interfaces ( functions ) to call the database function provided by PHP. This way if we change to another database or if the PHP function itself change we just need to modify one file ( database.php ) instead of modifying all our source code.
The database functions is stored in library/database.php. You can see the content below
<?php
require_once ‘config.php’;
$dbConn = mysql_connect ($dbHost, $dbUser, $dbPass) or die (‘MySQL connect failed. ‘ . mysql_error());
mysql_select_db($dbName) or die(‘Cannot select database. ‘ . mysql_error());
function dbQuery($sql)
{
   return mysql_query($sql) or die(‘Query failed. ‘ . mysql_error());
}
function dbAffectedRows()
{
   global $dbConn;
   return mysql_affected_rows($dbConn);
}
function dbFetchArray($result, $resultType = MYSQL_NUM) 
{
   return mysql_fetch_array($result, $resultType);
}
function dbFetchAssoc($result)
{
   return mysql_fetch_assoc($result);
}
function dbFetchRow($result) 
{
   return mysql_fetch_row($result);
}
function dbFreeResult($result)
{
   return mysql_free_result($result);
}
function dbNumRows($result)
{
   return mysql_num_rows($result);
}
function dbSelect($dbName)
{
   return mysql_select_db($dbName);
}
?>

How to use it ?

Below you can see an example on how to use this database abstration library. The first one is using PHP database function directly :
<?php
require_once ‘config.php’;
$conn = mysql_connect($dbHost, $dbUser, $dbPass);
mysql_select_db($dbName);
$sql = “SELECT *
FROM tbl_product
ORDER BY pd_name”;
$result = mysql_query($sql);
$products = array();
while ($row = mysql_fetch_assoc($result)) {
$products[] = $row;
}
?>
And the second one is using our database abstraction. We don’t have to initiate the connection this time because it is done from database.php :
<?php
require_once ‘config.php’;
require_once ‘database.php’;$sql = “SELECT * 
FROM tbl_product
ORDER BY pd_name”;
$result = dbQuery($sql);
$products = array();
while ($row = dbFetchAssoc(&$result)) {
$products[] = $row;

?>
As you can see, using database abstraction isn’t so hard at all.
Now that we have taken care the database issues we start building the admin pages.
Related Posts Plugin for WordPress, Blogger...