php返回mysql_query

时间:2011-09-20 21:47:09

标签: php mysql

如何从函数中检索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函数中执行它时,查询工作正常。

2 个答案:

答案 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连接。