note 106418 deleted from mysqli-stmt.bind-param by danbrown
| From: | danbrown@php.net | Date: | Tue, 15 Nov 2011 16:47:55 +0000 |
| Subject: | note 106418 deleted from mysqli-stmt.bind-param by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-184500@lists.php.net to get a copy of this message | ||
Note Submitter: Ole Clausen
----
Due to changes in PHP 5.3 I encountered a problem with 'bind_param' in my iQuery function
below. The values in the passed array *must* be references. The soloution is this function:
function getRefArray($a) {
if (strnatcmp(phpversion(),'5.3')>=0) {
$ret = array();
foreach($a as $key => $val) {
$ret[$key] = &$a[$key];
}
return $ret;
}
return $a;
}
- and this change in iQuery:
if ($stmt = $mysqli->prepare($sql)) {
$arrParams = getRefArray($arrParams); // <-- Added due to changes since PHP 5.3
$method = new ReflectionMethod('mysqli_stmt', 'bind_param');
$method->invokeArgs($stmt, $arrParams);
$stmt->execute();
$meta = $stmt->result_metadata();