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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $sqlComm = file("Comm.sql");
         foreach ($sqlComm as $sql) {
             $result = mysql_query($sql,$conn);
             if (!$result) { print "$sql";}
         }

    Клиент должен этот файл залить по фтп. Как он бедолага его делает, я не знаю.
    Уличная магия.

    Запостил: De-Luxis, 06 Июля 2011

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

    • П.С. Хостинг поддерживает exec.
      Ответить
    • В чем говно?

      Форматирование и отсутствие класса БД не предлагать, не тянет на полноценнй ГК.
      Ответить
      • это можно было реализовать через exec, одной командой. Что спасет если один запрос неожиданно будет разбит на несколько строк.
        Ответить
        • И?
          Можно было через exec, одной строкой, можно так.

          Тут в плюсах вывод неудавшихся запросов, а не падение на первом неправильном, в минусах необходимость разбивать строго по строкам.

          Может автор кода просто не умел пользоваться cli-интерфейсом.

          В целом коряво, но я бы не стал делать вместо этого exec. Я бы сделал форму для загрузки файла или текстовое поле для копипаста команд, разбил бы по ";", регуляркой, чтобы не зацепить ";" находящиеся внутри вставляемых данных и вывод пар "запрос-результат".

          Удобнее и информативнее.
          Ответить
          • А если в файле несколько мегабайт?
            Ответить
            • Что сложного в загрузчике который потянет хоть гигабайт?

              Даже если max_post_size и max_upload_size (или как их там) не поменять?
              Полно готовых решений на аяксе или флеше, грузящих файл по частям. И к ним же готовых серверных частей, собирающих файл назад.

              Читать файл по частям тоже не составит проблемы.
              Ответить
              • Т.е. на пхп и аяксе предлагается соорудить доморощенный FTP? Ну, вперёд, потом поделитесь результатами здесь (или это сделает ваш преемник).
                Ответить
    • показать все, что скрытоvanished
      Ответить

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