ПХП, кто подскажет с одной функцией?

Печать RSS
359

M

Пацак
0
ладно, представь себе, ты хочешь узнать живет ли во 2ой квартире человек с красной майкой. так тебе будет легче посмотреть есть ли во 2ой квартире человек с красной майкой или видя цвет майки, все же спросить, а какой у вашей майки цвет?
пример немного грубый, но к месту(SELECT login FROM ... WHERE login = '$login')

Добавлено через 04:58 сек.
ramzes (31 Мая 2012 / 20:43)
29. Vitamin aka mix,
Добавлено через 03:17 сек.
поддерживаю)
По рукам
N

Эцилопп сией тентуры
0
Ппц... разница между mysql_result, mysql_fetch_assoc и mysql_num_rows в том, какой тип данных они возвращают!
N

Эцилопп сией тентуры
0
И так по результатам тестирования:
Скрипт:
<?php
$intStartWork = microtime(true);
for ($i=0; $i<=50; $i++) {
    $strSql = "SELECT `id` FROM `users` WHERE `login` = '" . $login . "' LIMIT 1;";
    $intResult = mysql_num_rows(mysql_query($strSql));
}
echo round(microtime(true) - $intStartWork, 4) . '<br />';
//////////////////////////////////////////////////////
$intStartWork = microtime(true);
for ($i=0; $i<=50; $i++) {
    $strSql = "SELECT count(*) FROM `users` WHERE `login` = '" . $login . "';";
    $strResult = mysql_result(mysql_query($strSql), 0);
}
echo round(microtime(true) - $intStartWork, 4) . '<br />';
//////////////////////////////////////////////////////
$intStartWork = microtime(true);
for ($i=0; $i<=50; $i++) {
    $strSql = "SELECT `id` FROM `users` WHERE `login` = '" . $login . "' LIMIT 1;";
    $arrResult = mysql_fetch_assoc(mysql_query($strSql));
}
echo round(microtime(true) - $intStartWork, 4);

Показал следующее:
Вариант 1: 0.0165, 0.0141, 0.0144, 0.0275, 0.0129;
Вариант 2: 0.0117, 0.0111, 0.0097, 0.0201, 0.0114;
Вариант 3: 0.0136, 0.0149, 0.0144, 0.0155, 0.0142;

И результаты выдаваемые запросами:
При условии true
Вариант 1: int(1)
Вариант 2: string(1) "1"
Вариант 3: array(1) { ["users_id"]=> string(1) "1" }

При условии false
Вариант 1: int(0)
Вариант 2: string(1) "0"
Вариант 3: bool(false)

Добавлено через 07:40 сек.
А вообще это экономия на спичках! ради этой пары запросов, мой выбор 1й вариант! т.к результат всегда integer и не надо сравнивать строки!
Изменил: Nu3oN (31.05.2012 / 22:02)
N

Эцилопп сией тентуры
0
А если еще и убрать limit, так 3й вариант значительно выигрывает в скорости)
К

Айсберг Визави
0
#33 респект и плюс)

Ктулху
0
Сколько записей было в таблице?

2000 лет д.н.э.
0
36. ShiftBHT, count так же тормозить будетsmile
Выборка не по индексу идет.

Ктулху
0
37. ramzes, Теория конечно хорошо, но нужно же проверять на практике =)

Пришелец
0
$db->result(); - норм вааще smile
N

Эцилопп сией тентуры
0
ShiftBHT (1 Июня 2012 / 02:50)
Сколько записей было в таблице?
В среднем записей так 100! Может чуть больше)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск