2010-01-25 3 views
2

Я разбираю текстовый файл со сценарием ниже.Как вставить данные массива в MySQL в Perl?

Как вставить данные массива в таблицу MySQL?

Я уже изучил метод подключения DBI для Perl MySQL. И я могу успешно подключиться к локальному БД MySQL. Я могу создать таблицу с командной строкой MySQL.

#!C:\Perl\bin\perl.exe 
use strict; 
use warnings; 

while (<DATA>) { 
    my @rocks = split(/\s+/, $_); 

    foreach my $rock (@rocks) { 

    $rock = "\t$rock "; # put a tab in front of each element of @rocks 

    $rock .= "\n"; # put a newline on the end of each 

    print $rock ; 
    } 
} 

__DATA__ 
A B C D 
E F G H 

Я хочу таблицы результатов просмотра.

 
     Item1 Item2 Itme3 Item4 

     A  B  C  D 

     E  F  G  H 
+1

Ваши комментарии не синхронизированы с кодом: Где '@ rocks'? Ваши имена переменных принадлежат читателю: '$ array' не является массивом ref, как можно было бы ожидать. Плюс: ** 's/talbe/table /' ** –

+0

Привет, Синан, я пересмотрел свой пост. Спасибо за ваш хороший комментарий. –

ответ

8
use strict; 
use warnings; 
use DBI; 

my $dbh = DBI->connect(
    'DBI:mysql:database=test;host=localhost', 
    'root', 
    'YOUR_PASSWORD', 
    { RaiseError => 1, AutoCommit => 1 }, 
); 

my $sql = 'INSERT INTO foo (Item1,Item2,Item3,Item4) VALUES (?,?,?,?)'; 
my $sth = $dbh->prepare($sql); 

while (<DATA>){ 
    chomp; 
    my @vals = split /\s+/, $_; 
    $sth->execute(@vals); 
} 

__END__ 
A B C D 
E F G H 
+0

Привет, FM, он работает очень хорошо. Не могли бы вы рассказать мне больше о «RaiseError => 1, AutoCommit => 1'?, Я не могу этого понять. Спасибо. –

+5

@Nano HE: Взгляните на руководства http://search.cpan.org/perldoc?DBI. Там описано все –

Смежные вопросы