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

    0

    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
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    <?
    //Ограничиваем время выполнения скрипта 3-мя минутами
    set_time_limit(180);
    
    //Подключаемся к MySQL, при неудаче выводим ошибку
    mysql_connect("localhost", "torrent", "password") or die("Could not connect to MySQL");
    
    //Выбираем БД, при неудаче выводим ошибку
    mysql_select_db("torrent") or die("Could not select database");
    
    //Переводим все общение с БД в кодировку utf8
    mysql_query("SET NAMES utf8");
    
    //Открываем файл указанный в url переменной "f"
    $fp = fopen($_GET[f], "r");
    
    //Запускаем цикл до конца строк в файле
    while (!feof($fp)) {
            //Считываем строку (да, функцию trim() выполнять не обязательно, но у каждого программиста свои "тараканы")
            $tmp = trim(fgets($fp));
            
            //Преобразуем строку в массив. За разделитель используем ";"
            $torrent = explode('";"', $tmp);
            
            //В первом и последнем элементе удаляем лишние символы "
            $torrent[0] = substr($torrent[0], 1);
            $torrent[6] = substr($torrent[6], 0, (strlen($torrent[6]) - 1));
            
            //Если раскомментировать следующую строку, то можно увидеть как распарсился первый торрент в файле
            //print '<pre>'; print_r($torrent); exit();
            
            //Вставляем данные текущего торрента в таблицу
            mysql_query("INSERT INTO `torrents` 
                (`name`,
                `hash`,
                `date`,
                `size`,
                `topic_id`,
                `cat_id`,
                `cat_name`) 
              VALUES 
                ('" . mysql_real_escape_string($torrent[4]) . "',
                '" . $torrent[3] . "',
                '" . $torrent[6] . "',
                '" . $torrent[5] . "',
                '" . $torrent[2] . "',
                '" . $torrent[0] . "',
                '" . mysql_real_escape_string($torrent[1]) . "')
            ");
    }
    //Закрываем файл
    fclose($fp);
    
    //Выводим сообщение о завершении работы
    print 'complete: ' . $_GET[f];
    ?>

    Импорт CSV в MySQL. Со швабры.

    Запостил: gost, 23 Декабря 2015

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

    • >>> Открываем браузер, открываем url «http://site.ru/db/insert_to_db.php?f=category_10.csv». Проделываем тоже самое с каждым файлом CSV. Да, все это можно было автоматизировать, но я специально написал так, что бы было максимально всё понятно.
      Автор кода так впихивал 32 файла. Безумству обезьян нет предела...
      Ответить
    • По моему, это идеальный код xD
      Ответить
    • LOAD DATA INFILE - для слабаков.
      Ответить
      • Собственно, первый результат из Гугла на тему CSV to mysql именно это и советует. Но макаки на то и макаки, чтобы велосипедить, а потом показывать свои велосипеды всем подряд.
        Ответить

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