Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:45680 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 75462 invoked from network); 7 Oct 2009 06:26:24 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 7 Oct 2009 06:26:24 -0000 Authentication-Results: pb1.pair.com smtp.mail=samuel.roze@aliceadsl.fr; spf=permerror; sender-id=unknown Authentication-Results: pb1.pair.com header.from=samuel.roze@aliceadsl.fr; sender-id=unknown Received-SPF: error (pb1.pair.com: domain aliceadsl.fr from 212.27.42.3 cause and error) X-PHP-List-Original-Sender: samuel.roze@aliceadsl.fr X-Host-Fingerprint: 212.27.42.3 smtp3-g21.free.fr Linux 2.6 Received: from [212.27.42.3] ([212.27.42.3:33995] helo=smtp3-g21.free.fr) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id EF/13-58030-6A23CCA4 for ; Wed, 07 Oct 2009 02:18:16 -0400 Received: from smtp3-g21.free.fr (localhost [127.0.0.1]) by smtp3-g21.free.fr (Postfix) with ESMTP id BF3898180F2; Wed, 7 Oct 2009 08:18:08 +0200 (CEST) Received: from [192.168.0.10] (lns-bzn-46-82-253-200-55.adsl.proxad.net [82.253.200.55]) by smtp3-g21.free.fr (Postfix) with ESMTP id 8004D818141; Wed, 7 Oct 2009 08:18:05 +0200 (CEST) To: Christopher Jones Cc: Matteo Beccati , internals@lists.php.net In-Reply-To: <4ACC3052.3010104@oracle.com> References: <1254806557.19561.3.camel@samuel-laptop> <1254807735.19561.5.camel@samuel-laptop> <4ACAF18B.5080803@beccati.com> <1254846564.876.1.camel@samuel-laptop> <4ACBC540.4090308@beccati.com> <1254894205.7418.32.camel@samuel-laptop> <4ACC2B8F.2040302@oracle.com> <1254895397.7418.42.camel@samuel-laptop> <4ACC3052.3010104@oracle.com> Content-Type: text/plain; charset="UTF-8" Date: Wed, 07 Oct 2009 08:18:20 +0200 Message-ID: <1254896300.7418.45.camel@samuel-laptop> Mime-Version: 1.0 X-Mailer: Evolution 2.26.1 Content-Transfer-Encoding: 8bit Subject: Re: [PHP-DEV] PDO PgSQL: _pdo_pgsql_notice From: samuel.roze@aliceadsl.fr (Samuel ROZE) Ok, it is possible with Oracle.. Do you think that if it is for only both of PDO's supported databases is a reason to make that generaly ? For other drivers it must just burdening PDO. It's what I think... Le mardi 06 octobre 2009 à 23:08 -0700, Christopher Jones a écrit : > > Samuel ROZE wrote: > > Notices are informations returned with your own function which was > > writed for. For instance, a function (trigger or simple) which have to > > insert, delete and update lines can use the RAISE NOTICE (in PostgreSQL) > > to send notices to the client. > > > > It can be "2 deleted lines, 0 updated lines and 11 inserted lines", what > > you want ! For me, it is important for stats. > > > > Others Databases don't support that (RAISE NOTICE) but I think there's > > an equivalent in Oracle but I don't know it. > > There's a way to "print" message from Oracle. See dbms_output in > http://www.oracle.com/technology/tech/php/underground-php-oracle-manual.html > These can be retrieved with existing OCI8 or PDO_OCI calls to stored > procedures using bind variables. > > What we want to avoid is someone trying to port apps to different > databases and having to rewrite more code than needed. Easier said > than done :) > > Chris > > > > > Samuel. > > > > Le mardi 06 octobre 2009 à 22:47 -0700, Christopher Jones a écrit : > >> What are notices? Do they relate anything in other Databases? > >> I.e. can a generic interface be implemented instead of a postgres > >> specific one? > >> > >> Chris > >> > >> Samuel ROZE wrote: > >>> Thanks all lot for your work ! It is be what I want ! > >>> > >>> I'll view it this evening and I probably will transform it for PHP 5.2 > >>> (which is my version) and put it here. > >>> > >>> At tonight ! :-) > >>> 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 > >>>> -- > >>>> Matteo Beccati > >>>> > >>> > > >