Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:15460 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 84365 invoked by uid 1010); 16 Mar 2005 05:48:25 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 84350 invoked from network); 16 Mar 2005 05:48:25 -0000 Received: from unknown (HELO familyhealth.com.au) (127.0.0.1) by localhost with SMTP; 16 Mar 2005 05:48:25 -0000 X-Host-Fingerprint: 203.22.197.21 houston.au.fhnetwork.com FreeBSD 4.6-4.9 Received: from ([203.22.197.21:3732] helo=houston.familyhealth.com.au) by pb1.pair.com (ecelerity HEAD r(5124)) with SMTP id B9/15-23122-1A8C7324 for ; Wed, 16 Mar 2005 00:48:24 -0500 Received: from houston.familyhealth.com.au (localhost [127.0.0.1]) by houston.familyhealth.com.au (Postfix) with ESMTP id 62AD925054; Wed, 16 Mar 2005 13:18:07 +0800 (WST) Received: from [192.168.0.40] (work-40.internal [192.168.0.40]) by houston.familyhealth.com.au (Postfix) with ESMTP id 5B83324FCD; Wed, 16 Mar 2005 13:18:07 +0800 (WST) Message-ID: <4237C24C.7000607@familyhealth.com.au> Date: Wed, 16 Mar 2005 13:21:16 +0800 User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206) X-Accept-Language: en-us, en MIME-Version: 1.0 To: php-dev Cc: helly@php.net, yohgaki@php.net Content-Type: multipart/mixed; boundary="------------070500010109070403040402" Subject: Major upgrade to ext/pgsql From: chriskl@familyhealth.com.au (Christopher Kings-Lynne) --------------070500010109070403040402 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi, Attached is a patch that brings PostgreSQL support in PHP out of the stone age! It adds a five new functions: * pg_query_params Allows paramaterised queries (ie. no escaping required). This really is just a libpq shortcut for prepare/execute libpq function: PQexecParams * pg_prepare Creates a named prepared query libpq function: PQprepare * pg_execute Executes a named prepared query libpq function: PQexecPrepared * pg_transaction_status Returns transaction status of a connection libpq function: PQtransactionStatus * pg_result_error_field Allows getting advanced diagnostics on errors, most importantly allows getting the SQLSTATE error code on errors, therefore finally pgsql users can identify errors by ID. libpq function: PQresultErrorField Notes ----- I haven't attached docs or regression tests, these will follow if the patch is accepted (or before if you require) Should pg_query_params instead be folded into pg_query, with an optional 3rd parameter which would be the parameter array? Would this then be difficult for clients to detect if the 3rd parameter is available to them? I've tested it all and seems to work fine, please review :) Cheers, Chris --------------070500010109070403040402 Content-Type: application/x-gzip; name="ext-pgsql.txt.gz" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="ext-pgsql.txt.gz" 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 eo2g9h5zBPfwk8wh3cIXasSv3/8f6cfN1J5MAAA= --------------070500010109070403040402--