Revision: 13720
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at May 3, 2009 20:50 by sneaks
Initial Code
class Db {
private $link;
// Constructor method.
// -------------------------------------------------
function Db($host, $username, $password, $database) {
$this->connect($host, $username, $password, $database);
}
function connect($host, $username, $password, $database) {
$this->link = mysqli_connect($host,$username,$password,$database);
$this->dbprefix = $dbprefix;
if (!$this->link)
exit('Connect failed: '.mysqli_connect_error());
if (!mysqli_set_charset($this->link,'utf8'))
exit('Error loading character set utf8: '.mysqli_error($this->link));
}
// Delete method.
// -------------------------------------------------
function delete($table, $id) {
$sql = "DELETE FROM `" . $table . "` WHERE `id` = '" . Db::escape($id) . "'";
return mysqli_query($this->link,$sql);
}
// Select method.
// -------------------------------------------------
function select($table, $id=null) {
// No $id given, thus select all rows.
if ( $id!="0" && empty($id)) {
$sql = "SELECT * FROM `" . $table . "` ORDER BY `id`";
}
// grabs rows matching where clauses given
elseif (is_array($id)) {
$sql = "SELECT * FROM `" . $table . "` WHERE ";
$first=true;
foreach($id as $col=>$val) {
if($first) $first=false;
else $sql.=" AND ";
$sql .= "`".Db::escape($col)."` = '" . Db::escape($val) . "'";
}
// Grabs the row associated with the given $id.
} else {
$sql = "SELECT * FROM `" . $table . "` WHERE `id` = '" . Db::escape($id) . "'";
}
return mysqli_query($this->link,$sql);
}
// Update method.
// -------------------------------------------------
function update($table, $id) {
$getColumns = mysqli_query($this->link,"SELECT * FROM " . $table);
while($column = mysqli_fetch_field($getColumns)) {
$column = $column->name;
if (isset($_POST[$column])) {
Utils::manipulateValues($column); // Manipulate certain values before inserting them into db.
// This will be built up-on in the future.
$fields[] = "`" . $column . "` = '" . htmlspecialchars($_POST[$column]) . "'";
}
}
$sql = "UPDATE `" . $table . "` SET " . implode(", ", $fields) . " WHERE `id` = '" . $id . "'";
return mysqli_query($this->link,$sql);
}
// Insert method.
// -------------------------------------------------
function insert($table) {
$getColumns = mysqli_query($this->link,"SELECT * FROM " . $table);
while($column = mysqli_fetch_field($getColumns)) {
$column = $column->name;
if (isset($_POST[$column])) {
Utils::manipulateValues($column); // Manipulate certain values before inserting them into db.
// This will be built up-on in the future.
$fields[$column] = "'" . htmlspecialchars($_POST[$column]) . "'";
}
}
$sql = "INSERT INTO `" . $table . "` (`" . implode("`, `", array_keys($fields)) . "`) VALUES (" . implode(", ", $fields) . ")";
mysqli_query($this->link,$sql);
return mysqli_insert_id($this->link);
}
// Normal query for custom needs.
// NOTICE: When using this method, it is your job to assure user submitted-data is secure.
// -------------------------------------------------
function query($sql) {
return mysqli_query($this->link,$sql);
}
function num_fields($result) {
return mysqli_num_fields($result);
}
function fetch_field($result) {
return mysqli_fetch_field($result);
}
function fetch_row($result) {
return mysqli_fetch_row($result);
}
function num_rows($result) {
return mysqli_num_rows($result);
}
function fetch_array($result) {
return mysqli_fetch_array($result);
}
function fetch_assoc($result) {
return mysqli_fetch_assoc($result);
}
function escape($string) {
return mysqli_real_escape_string($this->link,$string);
}
// Check for tables existance.
function table_exists($sector) {
$getTables = mysqli_query($this->link,"SHOW TABLES");
while($table = mysqli_fetch_array($getTables)) {
if ($sector == $table[0]) {
return true;
}
}
}
function show_columns($table, $column) {
return mysqli_query($this->link,"SHOW COLUMNS FROM `" . $table . "` LIKE '" . $column . "'");
}
}
$Db = new Db($settings['database']['databaseHost'], $settings['database']['databaseUsername'], $settings['database']['databasePassword'], $settings['database']['databaseName']);
Initial URL
Initial Description
Initial Title
mysqli db_wrapper
Initial Tags
Initial Language
PHP