Привет, господа. Подскажите, как в mysqli вывести 1 результат, как при помощи функции mysql_result()?
Есть ли такая же функция, которая выводит 1 строку запроса. А то как-то fetch_array() не охота использовать.
if ($stmt = $mysqli->query('SELECT * FROM `stat` WHERE `visits`>10 LIMIT 1')) {
// выводим данные
while($row = $stmt->fetch_assoc()){
echo $row['uid'].' '.$row['visits'].'<br />';
}
}
Мне нужно как на mysql. Что-то вроде:
$q = mysql_query("SELECT COUNT(*) FROM `lol`"
mysql_result($q, 0);
Только при помощи mysqli
$q = $db->query("SELECT * FROM `lol`"->num_rows;
1.
$q = $db -> query('select count(id) as ia from ia')->fetch_assoc();
Echo $q['ia'];
2.
$q = $db -> query('select count(id) from ia')->fetch_row();
Echo $q['0'];
Добавлено 01.05.16 в 04:17:28:
А лучше
Class db extend mysqli{
public function __construct($h,$s,$n,$p){
parent::__construct($h,$s,$n,$p);
}
public function result($q)
{
return $this->query($q)->fetch_row()[0];
}
}
$db = new db('localhos',....);
$q = $db -> result('select count(id) from ia');
echo $q;
Спасибо. Хоть один толковый ответ
Так для count записей, num_rows самое то. Только используется просто выборка, без COUNT()
Проблема только в том, что для подсчёта количества строк с помощью num_rows берутся все значения поля. А count(*) только подсчитывает количество записей а базе. И если много записей, то num_rows работает дольше