/** * Bind result values to variables and fetch and return the values. * * @return array */ public function fetchResult() { $params = array(); $bindParams = array(); $rows = array(); $metaData = $this->statement->result_metadata(); if ($metaData !== false) { foreach ($metaData->fetch_fields() as $col) { ${$col->name} = null; $bindParams[] =& ${$col->name}; $params[] = $col->name; } call_user_func_array(array($this->statement, 'bind_result'), $bindParams); while (($row = $this->statement->fetch()) != false) { $ary = array(); foreach ($bindParams as $dbColumnName => $dbColumnValue) { $ary[$params[$dbColumnName]] = $dbColumnValue; } $rows[] = $ary; } } return $rows; }