1. PHP / Говнокод #3884

    +162

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    class recordset {
    /*используется для оптимизации работы с MySQL*/
    var $res;
    function recordset($sql,$link="") {
    if ($link!="")
    	{
        $this->res=mysql_query($sql,$link);
        if (!$this->res)
        	{
            echo $sql;
    		echo mysql_error($link);
    		}
        }
    else
    	{
        $this->res=mysql_query($sql);
        if (!$this->res)
        	{
            echo $sql;
    		echo mysql_error();
    		}
        }
    }
    
    function gr() {
    $row=mysql_fetch_row($this->res);
    if ($row) {for ($i=0;$i<count($row);$i++) $row[$i]=convert_cyr_string($row[$i],"k","w");}
    return $row; }
    
    function ga() {
    $row=mysql_fetch_array($this->res);
    if ($row) {foreach($row as $key=>$val) $row[$key]=convert_cyr_string($val,"k","w");}
    return $row; }
    
    function nr() {
    $num=mysql_num_rows($this->res);
    return $num; }}

    еще один перл того же автора, что и в 2х предыдущих опубликованных мной говнокодах.
    На этот раз старорежимный ООП - великолепный класс.

    Запостил: Mihard, 06 Августа 2010

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

    • пользы от такого класса 0
      Ответить
      • точно, один вред
        Ответить
      • Неправда, польза есть, хотя её очень мало.
        Польза в том, что все методы обращения к БД собраны в одном классе - переезд на другую СУБД существенно упрощается.

        А вот если учесть, что проекты с подобным кодом никогда не переезжают с одной СУБД на другую, то полностью с Вами согласен - класс бесполезен.
        Ответить
        • >>на другую СУБД существенно упрощается.

          да, особенно когда там SQL запрос передается параметром.

          Переехать с базы на базу не изменив SQL запрос -- это миф
          Ответить
          • мы сделаем сказку былью!
            http://pear.php.net/package/DB/
            Ответить
            • ну брешут же они! Независимость от драйвера и PDO делает, а запросы-то все равно разные. Напишите мне код, который выведет первые 10 строк из таблицы, и что бы он работал на MS-SQL и MySQL одинаково.
              Ответить
              • псевдокод:
                $db->select('email','passhash')->from('users')->limit('10');
                а нижележащий код формирует дб-зависимый вопрос и возвращает результат
                Ответить
                • круто! а джойны как делать?
                  Ответить
                  • по-зендовски (стырил код со stackoverflow):
                    $this->select()
                    ->from(array('g' => 'games'), array('title', 'asin', 'platform_id'))
                    ->join(array('r' => 'ranks'), 'g.id = r.game_id', array('rank'))
                    ->order('r.rank')
                    ->limit($top);
                    $resultRows = $this->fetchAll($query);
                    Ответить
                    • linq2sql с нами!)

                      кошмар-то какой
                      Ответить
                      • нормально в существующей действительности - за все надо платить.

                        или нужен расширенный sql стандарт, что бы писать без таких извращений
                        Ответить
        • вот именно, что тут особенно полезных методов нет
          Ответить
    • Свой велосипед — ближе к телу.
      Ответить

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