MySQLi bind_param只返回一行

时间:2014-04-13 21:39:44

标签: php mysql sql database mysqli

尽管来自编程背景,我仍然相对较新的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;
    }
}

0 个答案:

没有答案