"PHP" / Говнокод #537 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
<?php
function is_admin($user) {
	$q = mysql_query("SELECT COUNT(*) FROM `admin` WHERE `user` = '$user'");
	if(mysql_num_rows($q) == 1) {
		return true;
	}else{
		return false;
	}
}
}

Если кто непонял, COUNT() всегда возвращает 1 ячейку, я реально видел такой код =\

Запостил: guest guest, (Updated )

Комментарии (9) RSS

  • zerkms:
    кстати, бывают ситуации, когда запрос вида SELECT COUNT(*) ... не вернёт ни одной записи - выборка будет просто пустой 🙂
    Ответить
  • izra_ru:
    zerkms, только при ошибке запроса. В остальных случаях вернет n, где n >= 0
    Ответить
  • zerkms:
    izra_ru
    неправда ваша 🙂

    mysql> select count(*) from news_news where id = 666 group by id;
    Empty set (0.00 sec)
    Ответить
  • Javof:
    Я всегда проверяю количество записей после "SELECT", и не ебет XD
    Ответить
  • Pasha1st:
    zerkms:
    шутку оценил. но ты придираешься к словам. у тебя сначала group by, и только потом select(*).
    Ответить
  • eSASe:
    Да такая авторизация будет всегда пускать всех кому не лень, так как mysql_num_rows($q) по любому вернет одну запись с нулем (при неверной аутентификации). А сдесь явно проверяется не само значение, а количество записей вернувшихся в результате запроса.
    Ответить
  • Саня:
    ничего подобного, COUNT(*) в Мускле(а тут именно Мускуль) возвращает 0 при успешном выполнении запроса и если ничего не найдено.
    Ответить
  • Саня:
    хотя нет, пардон, я не дочитал код дальше. Сорри.
    Ответить

Добавить комментарий

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8