/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
uninitialized value
Fra : Lars Eckberg


Dato : 03-02-04 17:45

Hejsa

Håber at der er en der kan hjaelpe lidt her.
Jeg har lavet flg. lille test script, til at hive data ud af en datalabase. Det virker sådan set fint, men jeg bliver ved med at få en warning om uninitialized value. Jeg kan ikke fatte, hvad det er der gaar galt.. Måske der er en der kan give et hint..?
Det er linien med: print "row: @$array_ref\n"; Det går galt med hvergang.

Mvh
-- Lars

Fejl besked:
string: SELECT * FROM bla WHERE bla LIKE '%10'
Use of uninitialized value in join or string at ./select.pl line 35.
row: 10 reserved10 private
Use of uninitialized value in join or string at ./select.pl line 35.
row: 110 vlan_name110 free
Use of uninitialized value in join or string at ./select.pl line 35.
row: 210 vlan_name210 free
....
....

Script:
#!/usr/bin/perl -w

use DBI;
use strict;

my ($dbh, $sth, $sqlstring, $array_ref);
my @stash;

sub connectDB() {
$dbh = DBI->connect ("DBI:mysql:host=localhost;database=bla", "bla", "bla", {PrintError => 0, RaiseError => 1});
}

sub disconnectDB() {
$sth->finish;
$dbh->disconnect;
}

sub DoSQL() {
my ($sqlstring) = @_;
print "string: $sqlstring\n";
$sth = $dbh->prepare($sqlstring);
$sth->execute();
}

sub getdata() {
while ($array_ref = $sth->fetchrow_arrayref) {
push @stash, [ @$array_ref ];
}
}

sub printdata() {
foreach $array_ref (@stash) {
print "row: @$array_ref\n";
}
}

sub main() {
&connectDB();
&DoSQL("SELECT * FROM vlanstatus WHERE vlan_uid LIKE '%10'");
&getdata();
&printdata();
&disconnectDB();
}

&main;

 
 
Lars Eckberg (03-02-2004)
Kommentar
Fra : Lars Eckberg


Dato : 03-02-04 19:30

DOH!

Jeg har en NULL værdi i min database... 8)
Beklager forstyrrelsen..

Mvh
-- Lars
On Tue, 3 Feb 2004 17:44:44 +0100
Lars Eckberg <funky@worldonline.dk> wrote:

> Hejsa
>
> Håber at der er en der kan hjaelpe lidt her.
> Jeg har lavet flg. lille test script, til at hive data ud af en datalabase. Det virker sådan set fint, men jeg bliver ved med at få en warning om uninitialized value. Jeg kan ikke fatte, hvad det er der gaar galt.. Måske der er en der kan give et hint..?
> Det er linien med: print "row: @$array_ref\n"; Det går galt med hvergang.
>
> Mvh
> -- Lars
>
> Fejl besked:
> string: SELECT * FROM bla WHERE bla LIKE '%10'
> Use of uninitialized value in join or string at ./select.pl line 35.
> row: 10 reserved10 private
> Use of uninitialized value in join or string at ./select.pl line 35.
> row: 110 vlan_name110 free
> Use of uninitialized value in join or string at ./select.pl line 35.
> row: 210 vlan_name210 free
> ...
> ...
>
> Script:
> #!/usr/bin/perl -w
>
> use DBI;
> use strict;
>
> my ($dbh, $sth, $sqlstring, $array_ref);
> my @stash;
>
> sub connectDB() {
> $dbh = DBI->connect ("DBI:mysql:host=localhost;database=bla", "bla", "bla", {PrintError => 0, RaiseError => 1});
> }
>
> sub disconnectDB() {
> $sth->finish;
> $dbh->disconnect;
> }
>
> sub DoSQL() {
> my ($sqlstring) = @_;
> print "string: $sqlstring\n";
> $sth = $dbh->prepare($sqlstring);
> $sth->execute();
> }
>
> sub getdata() {
> while ($array_ref = $sth->fetchrow_arrayref) {
> push @stash, [ @$array_ref ];
> }
> }
>
> sub printdata() {
> foreach $array_ref (@stash) {
> print "row: @$array_ref\n";
> }
> }
>
> sub main() {
> &connectDB();
> &DoSQL("SELECT * FROM vlanstatus WHERE vlan_uid LIKE '%10'");
> &getdata();
> &printdata();
> &disconnectDB();
> }
>
> &main;


--
Kind Regards,
Lars Eckberg

ECKBERG CONSULTING
Burmeistersgade 23, 2th.
DK-1429 Copenhagen K
E-Mail: le@eckbergconsulting.com
Web:   www.eckbergconsulting.com

Søg
Reklame
Statistik
Spørgsmål : 177428
Tips : 31962
Nyheder : 719565
Indlæg : 6407938
Brugere : 218877

Månedens bedste
Årets bedste
Sidste års bedste