Re: PDO PgSQL: _pdo_pgsql_notice
| From: | Samuel ROZE | Date: | Wed, 07 Oct 2009 05:57:06 +0000 |
| Subject: | Re: PDO PgSQL: _pdo_pgsql_notice | ||
| References: | 1 2 3 4 5 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-45676@lists.php.net to get a copy of this message | ||
Well, i've show the patch this morning... It's great ! The allocation of
the HashTable when use setAttribute might not be really a good job but
other, in my mind, is !
See you afternoon for PHP 5.2 path. :-)
Samuel.
Le mercredi 07 octobre 2009 à 00:31 +0200, Matteo Beccati a écrit :
> Hi,
>
> >> Please allow some time for me to check how they are currently dealt with
> >> in the pgsql extension and to see how they can be implemented in the
> >> PDO driver.
> >
> > Actually, the PosgreSQL driver for PDO don't report
> > notices.. The content of "_pdo_pgsql_notice" is commented !
> >
> > Thanks a lot for the time you passed/you'll pass !
>
> Here's a proof of concept patch you can apply to the PHP_5_3 branch:
>
> http://www.beccati.com/misc/php/pdo_pgsql_notices_php5_3.patch
>
> I still need to clean it up a bit and discuss it with the team, but
> here's how it currently works:
>
> $db = new PDO(...);
> $db->setAttribute(PDO::PGSQL_ATTR_ENABLE_NOTICES, true);
>
> $db->exec($query); // works with $db->query() too
> $aNotices = $db->pgsqlGetNotices();
>
> And you will get an array of the notices raised by the last query.
>
> To sum up:
> * Notices are disabled by default, minimising the overhead
> * Unlike the pgsql extension which returns the most recent one, multiple
> notices can be fetched
> * A new query will reset the stored notices
> * Available on the base class because exec() doesn't return a PDOStatement
>
> Hope this helps
>
>
> Cheers