Schrift
[thread]11976[/thread]

aus mehreren Arrays in DB schreiben



<< >> 7 Einträge, 1 Seite
Gast Gast
 2008-06-05 12:14
#110749 #110749
Hallo zusammen,

ist es möglich aus mehreren Arrays in eine Tabelle einer DB zuschreiben.

z.B. Array 1 ergibt die erste Spalte,
Array 2 ergibt die zweite Spalte,
usw.


ich habe 4 Arrays in den jeweils die Daten für eine Spalte stehen, jetzt würde ich das gerne in eine Tabelle schreiben.


geht das??

gruß olli
renee
 2008-06-05 12:36
#110752 #110752
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Klar...

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use DBI;

my @a1 = (...);
my @a2 = (...);
my @a3 = (...);
my @a4 = (...);

my $max = größe des größten arrays;

my $dbh = DBI->connect(...) or die $DBI::errstr;
my $stmt = qq~INSERT INTO tabelle(spalte1,spalte2,spalte3,spalte4) VALUES(?,?,?,?);~;
my $sth = $dbh->prepare( $stmt ) or die $dbh->errstr;

for my $i ( 0 .. $max ){
    $sth->execute( $a1[$i], $a2[$i], $a3[$i], $a4[$i] ) or die $dbh->errstr;
}

$sth->finish;
$dbh->disconnect;
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
olliwest
 2008-06-05 12:51
#110753 #110753
User since
2008-06-05
9 Artikel
BenutzerIn
[default_avatar]
hi renee,

ja es funktioniert! Wieder mal Danke!

Code: (dl )
my $max = größe des größten arrays;


bekomme ich über die

Code: (dl )
my $max = @Array;



olli
moritz
 2008-06-05 13:17
#110758 #110758
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Code (perl): (dl )
1
2
use List::Util qw(max);
my $max = max map { scalar @$_ } \(@a1, @a2, @a3, @a4);


(ungetestet).

Wenn man Variablen durchnummeriert ist das ein Zeichen dafür, dass man die eigentlich in ein array packen sollte.
olliwest
 2008-06-05 13:33
#110764 #110764
User since
2008-06-05
9 Artikel
BenutzerIn
[default_avatar]
hi,

ich habe jetzt das Problem, dass er mit einen Datensatz rein schreibt wo nur NULL,NULL,NULL,NULL drinsteht.

wenn ich printf $max mache gibt er 2 aus, obwohl es nur 1 sein dürfte.

hat da jemand ne idee?!
renee
 2008-06-05 14:07
#110768 #110768
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Statt scalar @$_ muss es $#$_ heißen...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
olliwest
 2008-06-06 10:37
#110801 #110801
User since
2008-06-05
9 Artikel
BenutzerIn
[default_avatar]
morgen renee,

ja es funktioniert. Danke



gruß olli
<< >> 7 Einträge, 1 Seite



View all threads created 2008-06-05 12:14.