Access mysql database
This task use php to execute query on mysql database. If error occurs, error message is sent to specified email.
Access mysql database using utility class
- Create database.php as following
- Call query or execute method as following
$CONFIG['db']['server'] = 'localhost';
$CONFIG['db']['database'] = 'database';
$CONFIG['db']['username'] = 'username';
$CONFIG['db']['password'] = 'password';
$CONFIG['db']['prefix'] = 'prefix_';
$CONFIG['mail']['report'] = 'webmaster@host.com';
$CONFIG['mail']['sender'] = 'webmaster@host.com';
require_once('database.php');
$db = new database();
$id = 'abcdef';
$data = $db->query(sprintf("select * from %s where id = %s", $db->table('task'), $db->quote($id) ));
print_r($data);
$db->execute(sprintf("delete from %s where id = %s", $db->table('task'), $db->quote($id) ));
$db->clean();
database.php
<?php
class database {
private $cfg;
private $link;
public function __construct() {
global $CONFIG;
$this->cfg = $CONFIG['db'];
$this->link = mysql_connect($this->cfg['server'], $this->cfg['username'], $this->cfg['password']);
if (!$this->link) {
$this->sendError(mysql_error());
}
if ($this->link) {
if (!mysql_select_db($this->cfg['database'], $this->link)) {
$this->sendError(mysql_error());
$this->clean();
}
}
}
public function clean() {
mysql_close($this->link);
$this->link = null;
}
public function quote($src) {
return "'" . mysql_real_escape_string($src) . "'";
}
public function table($src) {
return $this->cfg['prefix'] . $src;
}
public function query($sql) {
$data = array();
if (!$this->link) return $data;
$result = mysql_query($sql, $this->link);
if ($result) {
while ($row = mysql_fetch_assoc($result)) {
$data[] = $row;
}
} else {
$this->sendError(mysql_error());
}
return $data;
}
public function execute($sql) {
if (!$this->link) return false;
$result = mysql_query($sql, $this->link);
if (!$result) {
$msg = mysql_error();
$this->sendError($msg);
return $msg;
} else {
return true;
}
}
public function sendError($message) {
global $CONFIG;
$from = $CONFIG['mail']['sender'];
$to = $CONFIG['mail']['report'];
$header = "From: $from\r\nReply-To: $from\r\n";
$subject = "Database error!";
mail($to, $subject, $message, $header);
}
}
?>
No comments:
Post a Comment