return $res;
return isset($res->num_rows) && $res->num_rows ? $res : false;
//работает так:
$adv = $res->num_rows;
return isset($adv) && $res->num_rows ? $res : false;
//вместо:
return isset($res->num_rows) && $res->num_rows ? $res : false;
$mysqli = new mysqli($dblocation,$dbuser,$dbpassword,$dbname, 3306);
class db {
static public function query(){
global $mysqli;
$args = func_get_args();
$sqlTpl = array_shift($args);
$args = array_map(array($mysqli, 'real_escape_string'), $args);
$sql = vsprintf($sqlTpl, $args);
if (!$res = $mysqli->query($sql)) {
printf("<pre>Error: %s\n<b>%s</b>\n\n<b>Трассировка</b>\n", $mysqli->error, $sql);
debug_print_backtrace();
echo '</pre>';
}
return isset($res->num_rows) && $res->num_rows ? $res : false;
}
// + защита от xss
static public function secureQuery(){
global $mysqli;
$args = func_get_args();
$sqlTpl = array_shift($args);
$args = array_map('htmlspecialchars', $args);
$args = array_map(array($mysqli, 'real_escape_string'), $args);
$sql = vsprintf($sqlTpl, $args);
if (!$res = $mysqli->query($sql)) {
printf("<pre>Error: %s\n<b>%s</b>\n\n<b>Трассировка</b>\n", $mysqli->error, $sql);
debug_print_backtrace();
echo '</pre>';
}
return isset($res->num_rows) && $res->num_rows ? $res : false;
}
// параметры все экранировать вручную
static public function unsecureQuery(){
global $mysqli;
$args = func_get_args();
$sqlTpl = array_shift($args);
$sql = vsprintf($sqlTpl, $args);
if (!$res = $mysqli->query($sql)) {
printf("<pre>Error: %s\n<b>%s</b>\n\n<b>Трассировка</b>\n", $mysqli->error, $sql);
debug_print_backtrace();
echo '</pre>';
}
return isset($res->num_rows) && $res->num_rows ? $res : false;
}
static public function esc($value){
global $mysqli;
return $mysqli->real_escape_string($value);
}
static public function obj(){
global $mysqli;
return $mysqli;
}
}