如何从函数中检索mysql_query?例如:
class A() {
...
function getAll($l=1) {
...
$result = mysql_query($query);
return $result
}
...
}
$a = new A();
$r = $a -> getAll(2);
while ($row = mysql_fetch_assoc($r)) {
// do something
}
当我从函数返回$ result时,上面的代码不起作用。但是,当我在getAll函数中使用mysql_fetch_assoc函数时,它完美地工作。所以基本上,我的问题是如何从函数返回一个mysql结果集?
**编辑**
我实际上没有错误。上面使用的while语句将不会执行。但是当我从getAll函数中执行它时,查询工作正常。
答案 0 :(得分:3)
不要从查询返回结果资源,而是返回从该资源中提取的数据:
$data = array();
while ( $row = mysql_fetch_assoc($result) ) {
$data[] = $row;
}
return $data;
答案 1 :(得分:1)
绝对有效。
执行var_dump($r)
以确保您获得资源。如果没有,请仔细检查您的SQL。可能存在错误。
同时启用脚本顶部的其他错误报告(以及检查mysql_error
)以获取更好的线索:
ini_set('display_errors', true);
error_reporting(E_ALL);
您已编辑了大部分代码,因此很难进一步调查。 只需确保您的方法没有关闭mysql连接。