Schrift
[thread]3549[/thread]

MySQL Table Einträge in File schreiben: irgendwas läuft falsch



<< >> 3 Einträge, 1 Seite
Gast Gast
 2005-03-18 09:37
#33079 #33079
Hallo alle zusammen, habe ein Problem mit dem Perl-DBI
Ich versuche Einträge aus einer MySQL Datenbank Tabelle formattiert in ein File zu schreiben. Bekomme das für die ersten 3 Spalten der Tabelle auch hin. (erstes file) Schliesse dann die Verbindung zu MySQL $dbh->disconnect und will ein zweites file schreiben das die Spalten 4 und 5 enthält.

hier der code:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
############ erstes file schreiben: ###############
my $outfile1 = "$Table Alignment.txt";
unless (open(ALNTXT, "> /www/modperldocs/bioinf/data/$outfile1") ) {
print "Cannot open file \"$outfile1\" to write to!!\n\n";
exit;
}

$dbh = DBI->connect("DBI:mysql:database", $DBUSER,$DBPASS);
$sth = $dbh->prepare("USE $Table;");
$sth->execute();
$sth = $dbh->prepare("SELECT Id, Origin, Sequence FROM $Table;");
$sth->execute();

while (my ($Nr, $Name, $AS) = $sth->fetchrow_array()) {
chomp($AS);

format ALNTXT =
>@<<<<<<<<<<<<<<<<<<<<<&
lt;<<<<<<<<<<<<<<<
$Nr      
@<<<<<<<<<<<<<<<<<<<<<<&
lt;<<<<<<<<<<<<<<<<<<<<<<;
$AS

.

write(ALNTXT);

}

close "/www/modperldocs/bioinf/data/$outfile1";
$sth->finish;
$dbh->disconnect;

##########################################
--> das funktioniert soweit !!!


will ich aber jetzt das zweite file schreiben:
(code identisch):
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
##########################################

my $outfile2 = "$Table Primer.txt";
unless (open(PTXT,"> /www/modperldocs/bioinf/data/$outfile2") ) {
print "Cannot open file \"$outfile2\" to write to!!\n\n";
exit;
}


$dbh = DBI->connect("DBI:mysql:nucmutations",$DBUSER,$DBPASS);
$sth = $dbh->prepare("USE $Table;");
$sth->execute();
$sth = $dbh->prepare("SELECT Primer, Oligoname FROM $Table;");
$sth->execute();


while (my ($X, $oligo) = $sth->fetchrow_array()) {

format PTXT =
>@<<<<<<<<<<<<<<<<<<<<<&
lt;<<<<<<<<<<<<<<<
$oligo    
@<<<<<<<<<<<<<<<<<<<<<<&
lt;<<<<<<<<<<<<<<<<<<<<<<;
$X

.

write(PTXT);

}

close "/www/modperldocs/bioinf/data/$outfile3";
$sth->finish;
$dbh->disconnect;

##########################################
--> bekomme ich ein leeres file. d.h das file wird erzeugt, es wird aber kein output reingeschrieben.

Kann mir jemand helfen. Habe ich irgendwas kleines übersehen.
Oder Vorschläge das anders zu machen. Bin für alles offen.
HappyLuckyMe\n\n

<!--EDIT|renee|1111133854-->
mordur
 2005-03-18 09:49
#33080 #33080
User since
2003-09-25
182 Artikel
BenutzerIn
[Homepage] [default_avatar]
mal sehen :
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$statement="SELECT spalte1,spalte2,spalte3,spalte4,spalte5 FROM table";
## dann connecten
my $dbh=DBI->connect...
my $ary_ref = $dbh->selectall_arrayref($statement);

open(FILE1,file1);
open(FILE2,file2);

foreach my $val(@{$ary_ref})
{
print FILE1 $val->[0].' '.$val->[1].' '.$val->[2].'\n';
print FILE2 $val->[3].' '.$val->[4].'\n';
}
close(FILE1);
close(FILE2);

die syntax ist wohl an einigen stellen nicht korrekt, betrachte es als Anregung.\n\n

<!--EDIT|mordur|1111132741-->
GwenDragon
 2005-03-18 10:10
#33081 #33081
User since
2005-01-17
14510 Artikel
Admin1
[Homepage]
user image
@happylickyme
Bitte das nächste Mal den Code zwischen Code-Tags schreiben, siehe linker Link Forum Code neben Eingabefeld ;)\n\n

<!--EDIT|GwenDragon|1111133616-->
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

<< >> 3 Einträge, 1 Seite



View all threads created 2005-03-18 09:37.