{% else-1 %}
Как работать?
Где нибудь в начале скрипта инициализируем класс
#$db = SQL::getInstance();
$db = new SQL();
далее уже работаем с запросами
Пподолжение в первом коментарии

                        
class SQL
{
private $sql = false;
private $result = false;
/*
private static $instance = null;

private function __construct(){}
private function __clone(){}
private function __wakeup(){}

public static function getInstance() {
if (is_null(self::$instance)) {
self::$instance = new self();
}
return self::$instance;
}
*/
public function isFetch() {
return preg_match('/select/i', $this->sql) ? true : false;
}

public function prepare($sql) {
$this->sql = trim($sql);
return $this;
}

public function fetch() {
return mysql_fetch_assoc($this->result);
}

public function execute($args = array()) {
if (sizeof($args)) {
$args = $this->esc($args);
$parts = preg_split('#(?)#u', $this->sql, null, PREG_SPLIT_DELIM_CAPTURE);
$cnt = sizeof($parts);
$cntargs = sizeof($args);
$cntparts = substr_count($this->sql, '?');

if ($cntargs != $cntparts) {
throw new InvalidArgumentException('Wrong number of arguments. Parts = ' . $cntparts . ', Args = ' . $cntargs);
}

$sql = '';
for($i = 0; $i < $cnt; $i++) {
$sql .= (($i % 2) == 0 ? $parts[$i] : str_replace('?', $args[($i/2)], $parts[$i]));
}
$sql .= ';';

$res = mysql_query($sql);
} else {
$res = mysql_query($this->sql);
}

$this->result = $this->isFetch() ? $res : mysql_affected_rows();
return $this;
}

public function insert_id() {
$id = mysql_fetch_row(mysql_query("SELECT LAST_INSERT_ID()"));
return $id[0];
}

public function esc($data) {
if (!is_array($data)) {
$data = is_int($data) ? $data : '"' . mysql_real_escape_string($data) . '"';
} else {
$data = array_map(array($this, 'esc'), $data);
}

return $data;
}
}
0 28 0
Без комментариев...