Решил поискать замену mysql_result для MSQLi
К примеру, раньше писал вот так
$res = mysql_query("SELECT COUNT(*)
FROM `users`
WHERE `login` = '". mysql_real_escape_string($login) ."'"
);
if(mysql_result($res, 0) > 0)
echo 'Пользователь с таким логином уже существует';
Но перехожу на MSQLi и сталкнулся с заменой, ну и вот что вышло
Первый вариант
$res = $mysqli->query("SELECT `id`
FROM `users`
WHERE `login` = '".$mysqli->real_escape_string($login)."'");
if (mysqli_num_rows($res) > 0)
$error[] = 'Пользователь с таким логином уже существует';
Второй вариант
$res = $mysqli->query("SELECT COUNT(id)
FROM `users`
WHERE `login` = '".$mysqli->real_escape_string($login)."'");
$row = $res->fetch_row();
if ($row[0] > 0)
$error[] = 'Пользователь с таким логином уже существует';
Третий вариант
$res = $mysqli->query("SELECT COUNT(id)
FROM `users`
WHERE `login` = '".$mysqli->real_escape_string($login)."'");
if (mysqli_num_rows($res) > 0)
$error[] = 'Пользователь с таким логином уже существует';
Из всех трех запросов быстрее всего выполняется Третий. Хотя может я и экономлю
на спичках, но вот если БД наполнится хорошо, то здесь уже придется думать
об оптимизации.
Так вот, кто что скажет, у кого какой опыт по MSQLi в том моменте?
Может какой то запрос хорошо подходит для одного, а какой то лучше для другого
_