- Edited
I need help converting mysql to msqli in the program I am using.
This is the database class to connect to database and to insert,select,delete and update.
<?php
final class db{
static $db;
static function config($conf=false){
#echo '<pre>'.print_r($conf, 1).'</pre>';
self::$db = mysql_connect($conf['host'], $conf['username'], $conf['password']);
mysql_select_db($conf['database'], self::$db);
}
static function changedb($database){
$resp = mysql_select_db($database);
return($resp);
}
static function select($sql, $args=false){
if($args['pager']){
$limit = self::load_pager($args['pager']);
$sql .= 'LIMIT '.$limit;
}
$result = mysql_query($sql, self::$db);
if(!$result) trigger_error("MySQL SELECT error: ".mysql_error()." using ".$sql);
if(@$args['explain']==true) self::explain($sql);
while ($r = mysql_fetch_array($result,MYSQL_ASSOC)){
$row[] = $r;
}
mysql_free_result($result);
@array_walk_recursive($row, 'de_clean_post_recursive');
return @$row;
}
static function select_row($sql, $args=false){
$result = mysql_query($sql, self::$db);
if(!$result) trigger_error("MySQL SELECT error: ".mysql_error()." using ".$sql);
if(@$args['explain']==true) self::explain($sql);
$row = mysql_fetch_array($result,MYSQL_ASSOC);
mysql_free_result($result);
@array_walk_recursive($row, 'de_clean_post_recursive');
return @$row;
}
static function query($sql)
{
$result = mysql_query($sql, self::$db);
if(!$result) trigger_error("MySQL UPDATE error: ".mysql_error().'<pre>'.$sql.'</pre><br>');
#if($_SESSION['access'] == 'admin') recache($sql);
}
static function explain($sql){
trigger_error("SQL: ".$sql);
$explain = mysql_query("EXPLAIN {$sql}", self::$db);
if ($row = mysql_fetch_assoc($explain)) {
foreach ($row as $key => $value) {
trigger_error("$key: $value\n");
}
}
}
}
?>
USAGE:
I use this to select a row:
<?
$sql = "SELECT * FROM user
WHERE userid = {$_SESSION['userid']}";
$user = db::select_row($sql);
?>
And this to select multiple rows
<?
$sql = "SELECT * FROM user";
$users = db::select($sql);
?>
To update:
<?
$sql = "UPDATE user SET user_name = '".($post['user_name'])."'
WHERE userid = '{$_SESSION['userid']}' LIMIT 1";
db::query($sql);
?>
To insert:
<?
$sql = "INSERT INTO user( ...,..,...,..) VALUES(..,..,..,..')";
db::query($sql);
?>
To delete:
<?
db::query('DELETE FROM user WHERE userid = "'.intval($GET['id']).'" LIMIT 1');
?>
OR
<?
$sql = "DELETE FROM user WHERE userid = "'.intval($GET['id']).'" LIMIT 1";
db::query($sql);
?>
I tried changing all mysql to mysqli but I can't connect to the server. Thank you for any help.