<?php
/* Class name : Database
* Inherited from :
* Created by : Junaid Hassan (email : junaidhassanalvi@gmail.com , blog : junaidhassanalvi.wordpress.com)
* Created On : 17-April-2103
* Description : This class is created to handle all database operations
* This is for mysql. Other classes could be written for other drivers
*
* Change Logs :
*
*/
class Database {
private $con, $rs;
protected $catalog;
function __construct($catalog) {
$this->catalog = $catalog;
}
//jha-- connect to database, according to the credentials provided in configuration file
public function connect() {
if (is_resource($this->con))
return;
$config = $this->catalog->get('config');
$this->con = mysql_connect($config->database->host, $config->database->username, $config->database->password);
if (!is_resource($this->con))
die('Unable to connect to dabase server');
$db_selected = mysql_select_db($config->database->dbname, $this->con);
if (!$db_selected) {
die('Can\'t use Specified database');
}
}
//jha-- execute provided sql statement
//jha-- sent result back in a form of array
public function execute($sql) {
$this->connect();
$this->rs = mysql_query($sql, $this->con);
return array('errno' => mysql_errno($this->con), 'error' => mysql_error($this->con));
}
//jha-- return desire object of information
//jha-- according to the type provided
public function fetch($type = 'array') {
switch ($type) {
case 'array' :
return mysql_fetch_array($this->rs);
break;
case 'row' :
return mysql_fetch_row($this->rs);
break;
case 'object' :
return mysql_fetch_object($this->rs);
break;
case 'record set' :
return $this->rs;
break;
case 'count' :
return mysql_num_rows($this->rs);
break;
}
}
}
?>
|