On 26.10.2007, at 20:44, Andi Gutmans wrote:
Why is it not an if() statement?
-----Original Message-----
From: Ben Ramsey [mailto:[EMAIL PROTECTED]
Sent: Friday, October 26, 2007 10:38 AM
To: internals@lists.php.net
Subject: [PHP-DEV] [PATCH] Generate warning when using
PDO::setAttribute() and ATTR_PERSISTENT
For a while, we were scratching our heads over why persistent
connections were not being created when using PDO_OCI, even though we
were explicitly calling PDO::setAttribute() to set
PDO::ATTR_PERSISTENT.
My colleague Brian DeShong further explains the issue on his blog:
http://www.deshong.net/?p=61
"You must set PDO::ATTR_PERSISTENT => true in the array of options
you
pass to the PDO constructor! If you call $pdo-
setAttribute(PDO::ATTR_PERSISTENT, true) after the instantiation of
the object, you won’t be using persistent connections."
He goes on to say: "It’d be nice if PDO::setAttribute() raised a
warning if you try to set PDO::ATTR_PERSISTENT, by the way."
I'm submitting the attached patch to do just that. :-)
Personally I find the entire attribute stuff in PDO a gigantic mess
which I said before the first release. Some things are not attributes
you can set, some of the things you cannot set at runtime etc. So
something are "attributes" of the connections, others are options and
yet others can only be set at connect time, so they should not even
be accepted as valid parameters to whatever set*() method as you
point out as it will have no effect. This should really be cleaned up
one day (PDO2?)
regards,
Lukas
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php