in reply to Re: using sequences with dbi
in thread using sequences with dbi

There are some very good reasons for using placeholders instead of quoting your arguments, or at the very least, using $dbh->quote(...).

Replies are listed 'Best First'.
Re: Re: Re: using sequences with dbi
by BigJoe (Curate) on Oct 04, 2001 at 00:56 UTC
    Not to be rude, but why make it more complicated than it is? I have read the links and it looks to like it is mostly personal opinion. When it is something simple and quick I don't use place holders. When it is complicated from the begining then I use place holders. But again that is my personnal opinion.

    --BigJoe

    Learn patience, you must.
    Young PerlMonk, craves Not these things.
    Use the source Luke.

      Because, at the very least, if you run the same program with different parameters, then multiple statements are sent to the server, with different text. This means they have to be reparsed.

      If you use placeholders, then, irrespective of the number of times the statement is executed, the database only ever gets one version of it, but with different parameters. So there's only one parse (which is both faster and more memory efficient for the server).

        I think the poster wanted to stress the fact that placehodlers automagically quote the value. If you don't use them (which sounds perfectly fine to me in the conditions you mentioned) you should at least use the quote() method to prevent havoc when an interpolated value contains potentially dangerous characters such as single quotes.

        -- TMTOWTDI

      Whether or not its 'complicated', if you're executing the same statement many times, its more efficient to use placeholders, especially on a database like Oracle, which keeps a SQL cache of its own, so you would benefit even when you only execute the statement a few times, but execute the script many times.