ФорумПрограммированиеPHP для идиотов → Внесение информации в базу данных.

Внесение информации в базу данных.

  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 15 декабря 2008 г. 13:08

    Здравствуйте.
    Нужно из файла csv внести данные в базу.


    Сейчас используется такой скрипт



    while ($data = fgetcsv($handle,10000, ";"))
    {
    $row[]=$data;

    if(preg_match("#^[a-z0-9]+$#i",$data[0]))
    mysql_query("REPLACE INTO `prise` SET `art`='".$data[0]."' , `Col1`='".$data[1]."' , `Col2`='".str_replace(",",".",$data[2])."' , `Col3`='".$data[3]."' , `Col4`='".$data[4]."'");
    }


    Насколько это рационально и как можно лучше?
    На счет он дупликат кей и реплейс, тут все норм, так как обновляться данные практически никогда не будут, а только добавляться.
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 15 декабря 2008 г. 13:20, спустя 11 минут 52 секунды

    Professor, а что делает строчка $row[]=$data; ?
    мне просто интересно.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 15 декабря 2008 г. 13:20, спустя 30 секунд

    юзай "load data in file" если позволяет мускуль твоему пользователю :)
    Сапожник без сапог
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 15 декабря 2008 г. 13:23, спустя 3 минуты 19 секунд


    юзай "load data in file" если позволяет мускуль твоему пользователю :)
    да, пхпдуд знает эту ф-ию как никто другой )))
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 15 декабря 2008 г. 13:50, спустя 26 минут 28 секунд

    NRG, только не понял почему именно я ? и как никто другой? ))))))))
    Сапожник без сапог
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 15 декабря 2008 г. 13:58, спустя 8 минут 29 секунд

    phpdude, а ты вспомни где и при каких обстоятельствах мы познакомились чуть ближе… =)
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 15 декабря 2008 г. 14:13, спустя 15 минут 6 секунд

    Professor, http://dev.mysql.com/doc/refman/5.1/en/load-data.html
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 15 декабря 2008 г. 14:19, спустя 5 минут 2 секунды


    phpdude, а ты вспомни где и при каких обстоятельствах мы познакомились чуть ближе… =)
    ах ты бля)))))))))) упию! )))
    Сапожник без сапог
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 15 декабря 2008 г. 14:19, спустя 15 секунд


    Professor, а что делает строчка $row[]=$data; ?
    мне просто интересно.

    ХЗ, осталась после какогото варианта реализации =)


    юзай "load data in file" если позволяет мускуль твоему пользователю :)

    А как быть если строки заменены должны быть??
    и если что то не вписывается в структуру таблицы, допустим заголовки.
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 15 декабря 2008 г. 14:22, спустя 3 минуты 43 секунды

    типа так?
    LOAD DATA INFILE 'file_name' REPLACE INTO TABLE tbl_name (col1,col2,…);
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 15 декабря 2008 г. 14:24, спустя 1 минуту 10 секунд

    Ну мне прежде чем записать туда, нужно кое какие операции сделать, а этого как добиться?
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 15 декабря 2008 г. 14:24, спустя 13 секунд

    Professor, короче это называется "пакетная загрузка данных".


    load data infile 'C:\\path\\file.cvs'
     replace into table `tbl`
     lines terminated by '\r\n'
     fields terminated by ';'


    что-то типа того
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 15 декабря 2008 г. 14:25, спустя 1 минуту 6 секунд


    Ну мне прежде чем записать туда, нужно кое какие операции сделать, а этого как добиться?


    какие именно?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 15 декабря 2008 г. 14:27, спустя 2 минуты 12 секунд

    Ну, заменять все точки на запятые
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 15 декабря 2008 г. 14:28, спустя 49 секунд

    когда загрузишь замени 1 sql запросом)
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!