• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 210
  • Last Modified:

SQL - query with DBI

Hi! My SQL query with a DBI module is supposed to have more than one result. How to I go through these results?

Here's the syntax:
$query = "SELECT table.* FROM table WHERE table.string LIKE \"%$string\%\"";
$sth = $::dbh->prepare($query);
$sth->execute();
@row = $sth->fetchrow_array;
if ($#row>1) {
   print $row[0];
}

Hope there are no typos.
0
Stapman
Asked:
Stapman
1 Solution
 
maneshrCommented:
you can use this .....

if you KNOWthe no of columns returned by your Query you can use this.


while (($br_nbr, $base_acct_nbr, $nickname) = $sth->fetchrow()){
   print "<B>",$br_nbr,"-",$base_acct_nbr,"|",$nickname,"</B><br>\n";
}
$sth->finish();


If you DO NOT , try this..

while ((@row) = $sth->fetchrow()){ ## Get every row of the result
    foreach(@row){
      print $_,"\t"; ## Print every column of that row
    }
    print "\n<br>"; ## NExt line
}


0
 
StapmanAuthor Commented:
Thanks maneshr.

If you have several elements in your row (if you get several columns of a table) it's better to use:

while ((@row) = $sth->fetchrow_array()) {
 # do something with the $row[...]
 shift(@row);
}
0

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now