http://qs1969.pair.com?node_id=122721


in reply to DBI placeholders

First some comments which may not help your immediate problem, but they might...

If your connect fails, the error message will not be in $dbh->errstr, because $dbh will be undef. It WILL be in $DBI::errstr, but even easier would be to use RaiseError in the connect, then you could get rid of all the 'or die ...' clauses in the other DBI statement. You are, for instance, not checking for errors in the fetch.

And you don't need to finish() a statement handle if you're going to fetch all of the rows from it.

AutoCommit is supposed to be on by default, so you shouldn't need to explicitly commit() anything (and I don't see any inserts/deletes/updates that need committing anyway) unless you turn off AutoCommit.

And finally, for some actual help, have you tried NOT using placeholders (just quoting 'guppy' directly in the SQL statement), and does it work? If that doesn't work then maybe the problem is that what's in the database is not what you think it is.

Update: Also, you're using the old-style form of connect (or maybe its just wrong, I forget what the old style was like), which prevents use of attributes like RaiseError during the connect. Look at the docs, and use the correct form ('Oracle' does not belong in that last position, that I'm sure of).

Replies are listed 'Best First'.
Re: Re: DBI placeholders
by randomblue (Beadle) on Nov 02, 2001 at 20:25 UTC
    And finally, for some actual help, have you tried NOT using placeholders (just quoting 'guppy' directly in the SQL statement), and does it work? If that doesn't work then maybe the problem is that what's in the database is not what you think it is.

    That's what strange: if I try to quote 'guppy' directly in the SQL statement, it works (gives me the right output). As soon as I put in the placeholder, and execute it with parameters, it stops working.