in reply to Can not figure out cause of error.

The error basically says that the prepared statement is still active.

Why don't you always see this error? The key here is that your driver will automatically close the prepared statement for you after the entire result set is fetched. If the query returns a single row, your code will be fine, as after one fetchrow_array, the statement will be closed. In case the query returns multiple rows, this is where the problem is in introduced: as there are more rows left to be fetched, the statement stays active, and the error comes up when you disconnect.

To get all rows, either loop through the result set by calling fetchrow_array, or call fetchall_arrayref to return the entire result set.

Replies are listed 'Best First'.
Re^2: Can not figure out cause of error.
by Anonymous Monk on Aug 13, 2005 at 11:33 UTC
    But the select statment only returns one row. And it is the exact same select statment used in another script which works fine. Which is why I am confused as to why that exact select statment works in one script and not this one.
      Do you still get the error if you put $sth->finish() after $sth->fetchrow_array()?
        The error does go away when I add $sth -> finish; so at this point I am just trying to figure out why this error appears in one script and not the other when the same code is used.
      Opps forgot to login on that post sorry.