Conrad Lender <crlender@gmail.com> writes:
> I'm using PostgreSQL 8.3 with PHP's "pgsql" module (libpq 8.3.7). When
> the server's standard_conforming_strings setting is off (this is
> currently still the default, I believe), I use something like this to
> escape strings:
> if ($escWildcards) {
> $str = strtr($str, array("%" => '\%', "_" => '\_'));
> }
> return "E'" . pg_escape_string($str) . "'";
The above cannot possibly work. pg_escape_string is generating what it
supposes to be a normal string literal, and then you are sticking an 'E'
on the front which changes the escaping rules. It is not the function's
fault that this fails.
regards, tom lane