尽管来自编程背景,我仍然相对较新的PHP并试图正确掌握它。我已经决定使用MySQLi而不是PDO(这对我来说是一个严重的错误)因为我的数据库需求,但是我遇到了一个问题,其中bind_result似乎只返回一个结果,尽管结果,我的知识,循环。我一直在谷歌搜索几个小时,但我无法弄清楚发生了什么。我确信解决方案非常简单,我忽略了一些事情,和/或我正在做一些非常错误的事情。如果是这样,我希望你能在心里找到原谅我,帮助我解决我讨厌的问题,Stack Overflow。
Here is the ever-so-malicious code.
public function query($query, $types, $params)
{
if ($stmt = $this->prepareQuery($query, $types, $params))
{
$stmt->execute();
// we prepare the array in which the results will be stored for dynamic results
$meta = $stmt->result_metadata();
$results = array();
while ($field = $meta->fetch_field())
{
$name = $field->name;
$$name = null;
// pass reference because bind_result() requires it
$results[$name] = &$$name;
}
while ($stmt->fetch())
{
// call_user_func_array is used for dynamic results
call_user_func_array(array($stmt, "bind_result"), $results);
var_dump($results) . "<br />";
}
$data = array();
while ($stmt->fetch()) {
array_push($data, $results);
}
return $data;
}
else
{
echo $this->db->error;
}
}