方法返回资源ID#14 PHP / MySQL

时间:2014-01-12 19:41:19

标签: php mysql

课程新手。

public function get_feed($member_id) {



    $sql = "SELECT mc. * , cp. * 
            FROM `my_connections` mc
            LEFT JOIN `thoughts` cp ON cp.`member_id` = mc.`connection_id` 
            WHERE mc.`member_id` = '".$member_id."'
            AND mc.`approved` = 1";

    $result = @mysql_query($sql,$db); check_sql(mysql_error(), $sql, 0);

    //echo '<pre>'.$sql.'</pre>';

            return $result; //this returns Resource id#14 or NULL


    /*while($list = mysql_fetch_array($result)) {

        $feed_item[] = $list;
    }

    return $feed_item;*/ 

}// EO get_feed()

我称之为

$feed = new my_feed;

echo $feed->get_feed($uid);

它返回Null。

但是当我在方法之外使用相同的sql时,它会返回预期的结果。

我应该在上面的查询中返回什么。

2 个答案:

答案 0 :(得分:3)

有几件事:

  1. 你正在压制错误,让自己陷入黑暗中:

    $result = @mysql_query($sql,$db); // Remove the @ symbol

  2. 然后,由于范围,您应该发现$db不是有效的数据库连接对象。确保将其设置为类变量,然后改为引用$this->db

  3. 您的Resource id#14结果是预期的,这就是mysql_query返回的结果。您可以使用各种mysql_fetch_*方法在此处解析它,或者只是返回它并让调用者处理解析。

  4. 停止使用mysql_*方法!尽快切换到mysqliPDO(据我所知,遗留应用程序需要时间)。

答案 1 :(得分:1)

$result总是返回Resource id#14是php处理的方式,要获取数据,你必须使用php为此获取的数据,如mysql_fetch_arraymysql_fetch_assoc

$result = @mysql_query($sql,$db); check_sql(mysql_error(), $sql, 0);

while($list = mysql_fetch_array($result)) {

    $feed_item[] = $list;
}

return $feed_item;

$feed _item会将查询结果放入数组

注意: Why shouldn't I use mysql_* functions in PHP?

尽量避免像@中的@mysqli_query这样的错误,你需要调试错误