Code: Select all
class RMysql {
private $_connection;
private $_result;
public function __construct($host, $user, $pass, $database) {
$this->_connection = mysql_connect($host, $user, $pass);
if (!is_resource($this->_connection))
throw new RMysqlException('Problems with connecting', 1);
mysql_select_db($database, $this->_connection);
}
public function query($query) {
$this->_result = mysql_query($query);
if (!is_resource($this->_result))
throw new RMysqlException('Query problem '. $query, 1);
if (!$this->_result)
throw new RMysqlException('There were problem with returning result', 1);
}
public function getData() {
return $this->_result;
}
public function close() {
mysql_free_result($this->_result);
mysql_close($this->_connection);
}
}
class RMysqlException extends Exception {
public function __construct($message, $code) {
parent::__construct($message, $code);
}
public function printError() {
echo
"<div>
<p>Code : ". parent::getCode() ."</p>
<p>Error on line: ". parent::getLine() ."</p>
<p>Filename: ". parent::getFile() ."</p>
<p>Message: ". parent::getMessage() ."</p>
</div>";
exit();
}
}Code: Select all
define(DEBUG, 1); //Change value here if you dont want to debug
try {
$new = new RMysql('localhost', 'root', '', 'mysql');
$new->query('SHOW TABLES');
while ($row = mysql_fetch_row($new->getData())) {
echo $row[0] . ' ' . $row[1] . '<br />';
}
$new->close(); //Close current connection and free result
} catch (RMysqlException $e) {
if ($e->getCode() == 1 && DEBUG == 1)
$e->printError();
else
echo 'There were some error !'; //Could add here some mail function to admin
}