Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:99106 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 49171 invoked from network); 18 May 2017 11:10:24 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 18 May 2017 11:10:24 -0000 Authentication-Results: pb1.pair.com header.from=lester@lsces.co.uk; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=lester@lsces.co.uk; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain lsces.co.uk designates 185.153.204.204 as permitted sender) X-PHP-List-Original-Sender: lester@lsces.co.uk X-Host-Fingerprint: 185.153.204.204 mail4.serversure.net Linux 2.6 Received: from [185.153.204.204] ([185.153.204.204:60191] helo=mail4.serversure.net) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id E0/C2-23431-A9D7D195 for ; Thu, 18 May 2017 06:55:23 -0400 Received: (qmail 27317 invoked by uid 89); 18 May 2017 10:55:19 -0000 Received: by simscan 1.3.1 ppid: 27311, pid: 27314, t: 0.0616s scanners: attach: 1.3.1 clamav: 0.96/m:52/d:10677 Received: from unknown (HELO ?10.0.0.7?) (lester@rainbowdigitalmedia.org.uk@81.138.11.136) by mail4.serversure.net with ESMTPA; 18 May 2017 10:55:19 -0000 To: internals@lists.php.net References: <001401d2cfae$f7c64130$e752c390$@marcodor.com> Message-ID: Date: Thu, 18 May 2017 11:55:19 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] Re: [RFC] deprecate PDO::PARAM_NULL From: lester@lsces.co.uk (Lester Caine) On 18/05/17 10:43, Marco Pivetta wrote: > On Thu, May 18, 2017 at 11:38 AM, Lester Caine wrote: > >> On 18/05/17 09:15, Dorin Marcoci wrote: >>> Yes, null is a state, not a type. ->bindValue('Foo', PDO::PARAM_NULL) is >>> awesome. >>> So it should be deprecated and removed. >> ? One of the reasons for using 'prepare' is to set up a query which can >> be run several times and some of those passes may require that one of >> the parameters IS null. Easy enough with the array passed to Execute, >> but more difficult if you have used the PDO parameter handling. In my >> book being able to flag a parameter as 'NULL' for a pass is just as >> important as supplying a value, so while yes NULL is a state, it is also >> a valid value for a parameter. >> > You can bind `NULL` pretty much with any PDO type - PDO::PARAM_NULL is not > needed to do so. Except that PDO::PARAM_NULL removes the need to assign a particular type to a parameter when the underlying field has the option to be of different types. While the interface may default to returning a string, PARAM_STR is not always the right thing to use. PARAM_AUTO is just as wrong in PDO which is SUPPOSED to return the same set of values which ever database engine is used. PARAM_FLOAT is similarly introducing the potential that different databases will give different results for both read and write. The whole point of PDO used to be that one could simply cahnge the selected driver and not have to change any code but all of the recent changes seem to have thrown that out of the windows? -- Lester Caine - G8HFL ----------------------------- Contact - http://lsces.co.uk/wiki/?page=contact L.S.Caine Electronic Services - http://lsces.co.uk EnquirySolve - http://enquirysolve.com/ Model Engineers Digital Workshop - http://medw.co.uk Rainbow Digital Media - http://rainbowdigitalmedia.co.uk