Abstração Mysqli, buscando matrizes de instruções preparadas
Ultimamente, deparei-me com um erro em uma biblioteca que costumava funcionar muito bem, e ficarei condenado se puder descobrir onde está.
O exemplo de código está abaixo e peço desculpas pelo material de depuração que está dentro dele, mas estou tentando fazê-lo funcionar.
O problema é que $ temp é uma matriz com a chave correta (o nome das colunas), mas todos os valores são NULL.
Eu acho que o problema está no
call_user_func_array(array($query, 'bind_result'), $params);
pouco, mas não posso realmente envolver minha cabeça em torno disso.
public function fetchRows(){
error_reporting(E_ALL+E_NOTICE);
$args = func_get_args();
$sql = array_shift($args);
traceVar($sql, "Query");
$colTypes = array_shift($args);
if (!$query = $this->prepare($sql, $colTypes)) {
die('Please check your sql statement : unable to prepare');
}
if (count($args)){
traceVar($args,'Binding params with');
call_user_func_array(array($query,'bindParam'), $args);
}
$query->execute();
$meta = $query->result_metadata();
while ($field = $meta->fetch_field()) {
$params[] = &$row[$field->name];
}
traceVar($params,'Binding results with');
call_user_func_array(array($query, 'bind_result'), $params);
while ($query->fetch()) {
traceVar($row,'After fetch');
$temp = array();
foreach($row as $key => $val) {
$temp[$key] = $val;
}
$result[] = $temp;
}
$meta->free();
$query->close();
//self::close_db_conn();
return $result;
}