On Thursday, November 21, 2002, at 06:45 AM, Jeff Urlwin wrote:
It doesn't appear to handle "...""...", though, right? Or am I missing
it?
Actually, it does, but completely "accidentally". DBD::ODBC is not
concerned with the fact that there are " inside the ", so:
the first quote sets in_literal=1 (true)
the second quote sets in_literal=0 (false)
the third puts us right back in_literal=1, so we can keep processing.
Since there should be an even number of " marks, I think we're OK here.
Seems too simple, but, it works. There may be a case that gets me,
but I
don't think so.
No, that makes a *lot* of sense. Allows it to be much more elegant than
when checking for "\"" and '\'' as escapes!
You probably wouldn't have that prepared as one statement.
Using, say, SQL Server, you can do something like (pseudo code here
with
some exaggeration, but I can actually provide test code that someone
sent):
sp_pain_to_deal_with(int i) as
if (i == 1)
select a, b, c from foo; /* returns a, b, c as result set */
elseif (i == 2)
delete from foo; /* returns a count, not a result set */
else
select d, a, b, f from foo; /* returns something completely
different */
end;
Aaah! Get away, get away!!! ;-)
Or, the more "normal" case:
$sth = $dbh->prepare("insert a, b, c into foo values (?, ?, ?); select
@@identidy;");
which, in one "shot" insert into the table and gets back the
auto-incremented id for the table (again, there is probably a lot of
syntax
issue with the above, but the concept is there).
Hrm, yes. I'm not sure that that's an issue for PostgreSQL.
Regards,
David
--
David Wheeler AIM: dwTheory
[EMAIL PROTECTED] ICQ: 15726394
http://david.wheeler.net/ Yahoo!: dew7e
Jabber: [EMAIL PROTECTED]