Re: PDO prepared statements and LIKE escaping

From: Date: Mon, 04 Aug 2008 16:33:11 +0000
Subject: Re: PDO prepared statements and LIKE escaping
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-277678@lists.php.net to get a copy of this message
On Mon, 4 Aug 2008 11:48:39 -0400, "Andrew Ballard" <aballard@gmail.com> wrote: > On Mon, Aug 4, 2008 at 11:35 AM, Larry Garfield <larry@garfieldtech.com> > wrote: >> >> On Mon, 04 Aug 2008 08:33:44 +0200, Per Jessen <per@computer.org> wrote: >>> Larry Garfield wrote: >>> >>>> IIRC, the way in SQL to circumvent that is to convert "100%" into >>>> "100%%". However, that does rather defeat the purpose of a prepared >>>> statement if I have to do my own escaping anyway, does it not?=20 >>> >>> Depends on what you perceive the purpose of the prepared statement to >>> be :-) In this context, I tend to think of performance only. Which > is= >>> >>> generally why I can't be bothered with prepared statements in php.=20 >> >> Actually in most cases in PHP you don't get much performance. What you > do get is added security, because prepared statements are cleaner than > cleaner and more reliable than string escaping. Of course, then we run > into the % problem above. >> >> --Larry Garfield > > True. I wish PDO would add an option of creating a parameterized query > WITHOUT preparing it, at least for SQL Server. Why? There is overhead > to creating the statement that way. I prefer using the "prepared > statement" method as it decreases the exposure and risk to SQL > injection. > > I'd like to see an option like the Microsoft ADO library so that I can > prepare the statement if I will be running it several times with > different parameter values each time, or choose not to incur the > overhead if I'm only going to run a statement once. I've solved that at least for the given page request with a caching layer on top of PDO. It caches and reuses the statement objects. The problem is the issue with LIKE as described above, which I still haven't figured out yet. --Larry Garfield

« previous php.general (#277678) next »