я делал так:Пишем функции:
---------------
### Connect to db
sub cdb
{
unless($db=DBI -> connect("DBI:mysql:BASE_NAME","LOGIN","PASS"))
{
wlog("error", "Can't connect to db: $DBI::errstr",1);
print_page("error", lmsg("internal_error"));
exit();
}
}
### execute sql query and check to error
sub sql
{
unless($rc=$db->prepare($_[0]))
{
wlog("error","Can\'t prepare \"$_[0]\": $DBI::errstr",1);
print_page("error",lmsg("internal_error"));
}
unless($rc->execute)
{
wlog("error","Can\'t execute \"$_[0]\": $DBI::errstr",1);
print_page("error",lmsg("internal_error"));
}
}
### execute sql another query and check to error
sub sql1
{
unless($rc1=$db->prepare($_[0]))
{
wlog("error","Can\'t prepare \"$_[0]\": $DBI::errstr",1);
print_page("error",lmsg("internal_error"));
}
unless($rc1->execute)
{
wlog("error","Can\'t execute \"$_[0]\": $DBI::errstr",1);
print_page("error",lmsg("internal_error"));
}
}
Далее в программе:
------------------
cdb();
sql("SELECT lala_topola");
if ($rc->rows<1)
{
wlog("error","Can't get lala_topola");
exit;
}
while ($lala_topola=$rc->fetchrow_array)
{
sql1("select users);
if ($rc1->rows!=1)
{
...
}
}