Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:45701 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 94386 invoked from network); 8 Oct 2009 22:07:27 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 8 Oct 2009 22:07:27 -0000 Authentication-Results: pb1.pair.com smtp.mail=samuel.roze@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=samuel.roze@gmail.com; sender-id=pass; domainkeys=bad Received-SPF: pass (pb1.pair.com: domain gmail.com designates 74.125.78.24 as permitted sender) DomainKey-Status: bad X-DomainKeys: Ecelerity dk_validate implementing draft-delany-domainkeys-base-01 X-PHP-List-Original-Sender: samuel.roze@gmail.com X-Host-Fingerprint: 74.125.78.24 ey-out-2122.google.com Received: from [74.125.78.24] ([74.125.78.24:56994] helo=ey-out-2122.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 11/22-17056-D926ECA4 for ; Thu, 08 Oct 2009 18:07:26 -0400 Received: by ey-out-2122.google.com with SMTP id 4so113119eyf.7 for ; Thu, 08 Oct 2009 15:07:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:subject:from:to:in-reply-to :references:content-type:date:message-id:mime-version:x-mailer :content-transfer-encoding; bh=qFG3opZpNctZj/LngXwZqYuNL3Yr10U/KrsBwHjyO3s=; b=d3+2QYK/yNs1h7pC0WhsejqIUanILpmC4pJVTTXZsBx/fy62aUPKsXYAH9fxdOq2wH LuR0HWy6FUtTSqWwlkzblFgkUepvOJzQCMWDRWQlp1cEFm+0zFqKh+R1L64MEnFDCwZ4 fKACmoKG4XoQmoRhKQ+g4zNG0p9mai39vXx/0= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=subject:from:to:in-reply-to:references:content-type:date:message-id :mime-version:x-mailer:content-transfer-encoding; b=kR1l90Nb7OJqWW1KyTADpCKCFn785UeJNP1PqY7dLkGbdiMOZ+emiCpv5yX9ugfGhA Yq/JHf8/52X88DsLXEsDHXewu17ghZ0T/IeUT6RCv7jKuwRsTVwk6jHi4rdKPyK8MaYJ p7ZADZQEQL9qCb6bLzbQszTlzKgGFYmSJEQkM= Received: by 10.211.145.15 with SMTP id x15mr2297008ebn.6.1255039642537; Thu, 08 Oct 2009 15:07:22 -0700 (PDT) Received: from ?192.168.0.10? (lns-bzn-57-82-249-12-33.adsl.proxad.net [82.249.12.33]) by mx.google.com with ESMTPS id 10sm1672044eyd.0.2009.10.08.15.07.21 (version=SSLv3 cipher=RC4-MD5); Thu, 08 Oct 2009 15:07:22 -0700 (PDT) To: internals@lists.php.net In-Reply-To: <1255038690.10759.9.camel@samuel-laptop> References: <1255038690.10759.9.camel@samuel-laptop> Content-Type: text/plain; charset="UTF-8" Date: Fri, 09 Oct 2009 00:07:37 +0200 Message-ID: <1255039657.10759.17.camel@samuel-laptop> Mime-Version: 1.0 X-Mailer: Evolution 2.26.1 Content-Transfer-Encoding: 8bit Subject: Re: Patch: Use notices in PDO From: samuel.roze@gmail.com (Samuel ROZE) There's an example, using PostgreSQL driver: ---------------------------------------------------- PDO::NOTICES_FETCH )); var_dump($sql); echo "getAttribute: "; var_dump($sql->getAttribute(PDO::ATTR_LOG_NOTICES)); echo 'Notices: '; var_dump($sql->noticeInfo()); $q1 = $sql->query('CREATE OR REPLACE FUNCTION test_notice (v_int integer) RETURNS integer AS $$ BEGIN RAISE NOTICE \'Sympatique % !\', v_int; RAISE NOTICE \'Sympatique un nouvelle fois % !\', v_int; RAISE NOTICE \'Génial maintenant... % \', v_int; RETURN 12; END; $$ LANGUAGE plpgsql;'); $q2 = $sql->query('SELECT * FROM test_notice(1)'); echo 'Query: '; var_dump($q2); echo 'Notices: '; var_dump($sql->noticeInfo()); ?> ---------------------------------------------------- That will return: ---------------------------------------------------- object(PDO)#1 (0) { } getAttribute: bool(true) Notices: bool(false) Query: object(PDOStatement)#3 (1) { ["queryString"]=> string(28) "SELECT * FROM test_notice(1)" } Notices: array(3) { [0]=> string(23) "NOTICE: Sympatique 1 !" [1]=> string(40) "NOTICE: Sympatique un nouvelle fois 1 !" [2]=> string(33) "NOTICE: Génial maintenant... 1 " } Query: object(PDOStatement)#4 (1) { ["queryString"]=> string(10) "SELECT 1,2" } Notices: bool(false) ---------------------------------------------------- Samuel. Le jeudi 08 octobre 2009 à 23:51 +0200, Samuel ROZE a écrit : > Hi, > > I've make a patch which insert notices concepts to PDO. It create: > - PDO::noticeInfo() - to be like errorInfo > - PDO::ATTR_LOG_NOTICES, the name of the PDO parameter > - PDO::NOTICES_FETCH - fetch notices > - PDO::NOTICES_NONE - don't fetch notices > > The notices HashTable is emptied at each queries. > > There is a patch to implements this function into PDO: > http://www.d-sites.com/wp-content/uploads/2009/10/php-5_3-pdo-notices-managment.patch > > And one other to implements notices recuperation for PostgreSQL: > http://www.d-sites.com/wp-content/uploads/2009/10/php-5_3-pdo-pgsql-notices-managment.patch > > It can be done for Oracle, i'm sure. > > Thanks for feedbacks. > Samuel. >