[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Оцените класс
m4a1fox
Доброго дня господа! Оцените метод

public function Select($query) {
$result = mysql_query($query);

if(!$result)
die(mysql_error());

$n = mysql_num_rows($result);
$arr = array();

for($i = 0; $i < $n; $i++){
$row = mysql_fetch_assoc($result);
$arr[] = $row;
}
return $arr;
}




Спустя 25 минут, 52 секунды (17.09.2011 - 15:35) Winston написал(а):
Можно сократить немного :)
public function Select($query){
$result = mysql_query($query) or die(mysql_error());
$arr = Array();

while($row = mysql_fetch_assoc($result))
$arr[] = $row

return $arr;
}

Спустя 9 минут, 45 секунд (17.09.2011 - 15:45) m4a1fox написал(а):
Да меня вот это смутило

for($i = 0; $i < $n; $i++){
$row = mysql_fetch_assoc($result);
$arr[] = $row;
}


Это что же получается. Нагружать базу пока в ней есть записи запросом mysql_fetch_assoc?

Спустя 35 секунд (17.09.2011 - 15:45) inpost написал(а):
m4a1fox
А можно немного стиля добавить?

Спустя 11 секунд (17.09.2011 - 15:46) m4a1fox написал(а):
Winston
А товой вариант менее ресурсозатратный!

Спустя 1 минута, 11 секунд (17.09.2011 - 15:47) m4a1fox написал(а):
inpost
Цитата
А можно немного стиля добавить?

Всмысле?
Так?

public function Select($query) {
$result = mysql_query($query);

if(!$result)
die(mysql_error());

$n = mysql_num_rows($result);
$arr = array();

for($i = 0; $i < $n; $i++){
$row = mysql_fetch_assoc($result);
$arr[] = $row;
}

return $arr;
}


Так?

Спустя 23 минуты, 17 секунд (17.09.2011 - 16:10) inpost написал(а):
m4a1fox
А разве действие внутри условия не надо выделять 4-мя пробелами от самого условия?

Спустя 1 минута, 47 секунд (17.09.2011 - 16:12) vital написал(а):
Цитата
Описание: Выполняет sql pапрос и возвращает результаты в виде двумерного массива. Может вернуть в виде ассоциативного массива, где ключом будет поле из строки результата (параметр $key)

    function dbSuper($sql, $multi = 1, $key = false) 
    { 
        $q = dbQuery($sql); 
        $items = array(); 
        if(!$multi) 
        { 
            return mysql_fetch_assoc($q); 
        } 
     
        while($r = mysql_fetch_assoc($q)) 
        { 
            if(!$key) 
            { 
                $items[] = $r; 
            } 
            else 
            { 
                $items[$r[$key]] = $r; 
           
        }
 
     
        return $items; 
    }

Спустя 1 час, 18 минут, 31 секунда (17.09.2011 - 17:30) Игорь_Vasinsky написал(а):
я же писал как то ранее... мне сказали велосипед.

Но я в тихоря юзаю функцию...

Спустя 6 минут, 49 секунд (17.09.2011 - 17:37) vital написал(а):
Так да, велосипед.
Я вон выложил выше тоже велосипед, только чуть с более продвинутыми педалями.

А вообще, мне кажется гулпым писать велосипеды, для функций, которые скоро вообще из языка выпилят(ну сначала депрекейтед сделают скоро). ТЕм более что, тот же результат можно получить PDO->query()->fetch()\fetchAll()

Спустя 1 минута, 49 секунд (17.09.2011 - 17:39) Игорь_Vasinsky написал(а):
не углублял я свои навыки в ООП dry.gif

Спустя 2 минуты, 12 секунд (17.09.2011 - 17:41) vital написал(а):
Цитата (Игорь_Vasinsky @ 17.09.2011 - 16:39)
не углублял я свои навыки в ООП dry.gif

Через пару версий функции mysql_* выпилят из пхп.
В любом случае придется разбираться с pdo... или mysqli wink.gif

Спустя 48 секунд (17.09.2011 - 17:42) Игорь_Vasinsky написал(а):
достоверная инфа? или

Спустя 2 минуты, 24 секунды (17.09.2011 - 17:44) vital написал(а):
Цитата (Игорь_Vasinsky @ 17.09.2011 - 16:42)
достоверная инфа? или

Было уже где-то месяц назад в мейл-листе пхп-разрабов, от одного из ведущих.

Спустя 3 минуты, 17 секунд (17.09.2011 - 17:48) vital написал(а):
Цитата
В прошлые выходные Филип Олсон отправил в список рассылки php-internals предложение о начале постепенного ухода от расширения mysql в будущих версиях php. Это, однако, не означает, что mysql уже не будет в PHP 5.4, но с версии 5.5 уже начнётся работа по обновлению документации и добавлению E_DEPRECATED
В качестве замены текущему нативному расширению предпологается использовать расширение mysqli или PDO, а возможно mysqlnd.

В результате, в будущих версиях PHP5 (начиная с 5.5 или 5.6) вызовы таких функций, как mysql_pconnect, mysql_query и так далее будут пораждать весьма неприятные уведомления E_DEPRECATED, а уже в версии PHP 6 код этих функций будет, скорей всего, полностью удалён из PHP.

Новость была в июле.

Спустя 5 минут, 53 секунды (17.09.2011 - 17:54) inpost написал(а):
Не надо придумывать smile.gif mysql не выпилят, просто не будет дальнейшей поддержки, а значит эту функцию просто забросят, а mysqli будут развивать и ускорять, делать более оптимальную, а mysql просто трогать не будут.
Функция устаревшая, но с ней можно будет работать ещё годами, как это было с ereg.

Спустя 3 минуты, 44 секунды (17.09.2011 - 17:57) vital написал(а):
Цитата (inpost @ 17.09.2011 - 16:54)
Не надо придумывать smile.gif mysql не выпилят, просто не будет дальнейшей поддержки, а значит эту функцию просто забросят, а mysqli будут развивать и ускорять, делать более оптимальную, а mysql просто трогать не будут.
Функция устаревшая, но с ней можно будет работать ещё годами, как это было с ereg.

Я всего лишь скопипастил текст статьи
http://habrahabr.ru/blogs/php/124245/
А там все внятно написано. Поставят депрекейтед на функцию. КТо извращенец - пусть юзает.

Спустя 1 минута, 40 секунд (17.09.2011 - 17:59) vital написал(а):
Цитата
Между прочим, в официальных доках в разделе про mysql уже давно написано «If you are using MySQL versions 4.1.3 or later it is strongly recommended that you use the mysqli extension instead»

Спустя 22 минуты, 28 секунд (17.09.2011 - 18:21) inpost написал(а):
vital
Ну я же не спорю насчет рекомендаций, я говорю, что её убирать не будут, просто плохая функция, а так существующая smile.gif

Спустя 10 дней, 22 часа, 26 минут, 9 секунд (28.09.2011 - 16:48) SlavaFr написал(а):
Цитата (m4a1fox @ 17.09.2011 - 12:09)
Оцените метод

1) нет конекта, что приведет к проблемам при наличии нескольких б.д
2) функция die не уместна в классе. Мы не в праве навязывать грубый облом программы в подoбном методе (смотри Exception).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.