На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Внимательно изучите правила раздела перед созданием темы
0. ПРИЛАГАЙТЕ СВОИ СКРИПТЫ.
1. Прежде чем создать топик, используйте поиск. Возможно это уже обсуждалось.
2. В топике указывайте ОС, режим работы скрипта (CLI|CGI). Очень желателен вывод лог-файлов и того места, куда у вас назначен вывод данных (STDOUT|STDERR)
3. Помните: вы знаете что вы хотите, а форумчане - нет. Поэтому следуйте простому правилу: грамотный развернутый вопрос - грамотный развернутый ответ.
Модераторы: ANDLL
  
    > Содержимое файла в MySQL
      Видать заработался в конец, чую что мозг не варит, но добить охота.

      Итак.
      ExpandedWrap disabled
        #!/usr/bin/perl
         
        use DBI;
         
        my $date = `/bin/date "+%Y-%m-%d"`;
        my $path = "/path";
        my $cur_file;
        my $i;
        my $f;
        my @fcont;
         
        my $dbhost = "localhost";
        my $dbuser = "username";
        my $dbname = "databse";
        my $dbpass = "password";
        my $dbport = "3306";
         
         
        # Соединяюсь с хостом, базой...
        my $dbh = DBI->connect("DBI:mysql:database=$dbname;host=$dbhost" , $dbuser , $dbpass , {'RaiseError' => 1});
         
        # Читаю содержимое каталога
        opendir ( DIR , "$path" );
        # Удаляю точку, две точки
        @files = grep( !/^\.+$/,readdir( DIR ) ); # foreach my $cur_file (readdir(DIR)){..}
         
        # Читаю имена файлов
        foreach $cur_file ( @files ){
        # читаю содержимое файлов
            open( fh , $cur_file ) || die "Error: $_";
        # Содержимое файла - в массив!
                @fcont = <fh>;
        # Шагаю по массиву
                foreach $f( @fcont ){
        # Впихиваю в таблу значения ДАТА, СОДЕРЖИМОЕ ФАЙЛА, ИМЯ_ФАЙЛА
                        $dbh->do( "INSERT INTO conf ( my_date , conf , ip ) VALUES ( $date , $f , $cur_file );" );
                }
            close( fh );
        }
        closedir( DIR );
         
        $dbh->disconnect();



      Суть.
      Естественно, что не работает =)

      Говорит:
      ExpandedWrap disabled
        DBD::mysql::db do failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' my_file1.txt )' at line 2 at ./insert.pl line 47, <fh> line 310.
        DBD::mysql::db do failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' my_file1.txt )' at line 2 at ./insert.pl line 47, <fh> line 310.



      Подскажите люди добрые как мне содержимое файла запихать в одно поле одной строки за одну вставку...
      А то домой уже даже захотелось...
        ExpandedWrap disabled
          # Содержимое файла - в массив!
                  @fcont = <fh>;
          # Шагаю по массиву
                  my $blob = $dbh->quote( join('', @fcont));
                  $dbh->do( "INSERT INTO conf ( my_date , conf , ip ) VALUES ( $date , $blob , $cur_file );" );
        Если я правильно понял :)
          Мдям-с. То, что было необходимо.

          Благодарю.
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0305 ]   [ 15 queries used ]   [ Generated: 19.04.24, 14:02 GMT ]