Configuration file:
Class file:
host = $config['sql']['host'];
$this->user = $config['sql']['user'];
$this->pass = $config['sql']['pass'];
$this->base = $config['sql']['base'];
}
public function connect() {
$this->link = mysql_connect($this->host, $this->user, $this->pass) or die("Error: Connection to database server cannot be established.");
mysql_select_db($this->base, $this->link)or die("Error: Connection to database cannot be established.");
}
public function close() {
mysql_close($this->link);
}
private function query($query) {
$result = mysql_query ($query, $this -> link);
return $result;
}
public function strip($string) {
# For use in querystring - prevents SQL injections
return "'" . mysql_real_escape_string($string, $this->link) . "'";
}
public function list_assoc($query) {
$results = array();
# Querying database
$resource = $this->query($query);
# Stacking all results in one array
while ($row = @mysql_fetch_assoc ($resource)) {
$results[] = $row;
}
@mysql_free_result($resource);
return $results;
}
public function row_assoc($query) {
# Querying database
$resource = $this->query($query);
# Fetching result
$result = @mysql_fetch_assoc ($resource);
@mysql_free_result($resource);
return $result;
}
public function update($table, $vals, $where) {
$result = $this->query("UPDATE " . $table . " SET " . $vals . " WHERE " . $where);
return $result;
}
public function insert($table, $vals) {
$result = $this->query("INSERT INTO " . $table . " SET " . $vals);
return $result;
}
}
?>
Usage:
connect();
# List
$users = $db->list_assoc("SELECT username FROM users ORDER BY username ASC");
foreach ($users as $user) {
echo($user['username'] . "
");
}
# One row
$user = $db->row_assoc("SELECT username FROM users WHERE id = " . $db->strip($_GET['id']));
echo($user['username']);
# Insert
$db->insert("users", "username = " . $db->strip($_GET['username']) . ", password = " . $db->strip($_GET['password']));
# Update
$db->update("users", "username = " . $db->strip($_GET['username']), "id = " . $db->strip($_GET['id']));
$db->close();
?>