RE: [PHP-DEV] mysqli needs a method to bind a single parameter
| From: | Joel Hutchinson | Date: | Fri, 06 Dec 2019 19:14:41 +0000 |
| Subject: | RE: [PHP-DEV] mysqli needs a method to bind a single parameter | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-107901@lists.php.net to get a copy of this message | ||
I'd really like to mirror PDO here, and with
bind_param supporting an unlimited
number of arguments, it makes that third positional argument clunky.
I still say a separate function to bind a sole value would be enough and avoids any confusion with
the existing method.
Joel Hutchinson
-----Original Message-----
From: Bruce Weirdan <weirdan@gmail.com>
Sent: Monday, November 25, 2019 5:41 PM
To: Joel Hutchinson <Joel.Hutchinson@onlinecommercegroup.com>
Cc: internals@lists.php.net
Subject: Re: [PHP-DEV] mysqli needs a method to bind a single parameter
On Mon, Nov 25, 2019 at 8:06 PM Joel Hutchinson <Joel.Hutchinson@onlinecommercegroup.com>
wrote:
> This proposal would leave the previous mysqli_stmt_bind_param mostly
> untouched. Instead, the two could be used in tandem $sql = 'SELECT
> name FROM db.customer WHERE record_id = ? AND shipping_zip = ?';
> if(isset($_GET['zip'])) $sql .= ' AND billing_zip = ?';
>
> $stmt = $db->prepare($sql);
> $stmt->bind_param('is', $_GET['record_id'],
> $_GET['shipping_zip']);
> if(isset($_GET['zip'])) $stmt->bind_single('s',
> $_GET['billing_zip'],
> 3); $stmt->execute(); This necessitates a small change to
> mysqli_stmt_bind_param, in that the current function has a parameter check to ensure that the
> number of binds matches the number of parameters in the query (or else it emits an E_WARNING). That
> check would have to move to mysqli_stmt_execute, if it is still to be performed.
If bind_param is allowed to do incomplete bind (as in your example where you supply 2
out of 3 required bound parameters) t hen there's no need for additional method, as you could
simply do:
if (isset($_GET['zip'])) $stmt->bind_param('s', $_GET['zip']);
--
Best regards,
Bruce Weirdan mailto:weirdan@gmail.com