课程新手。
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时,它会返回预期的结果。
我应该在上面的查询中返回什么。
答案 0 :(得分:3)
有几件事:
你正在压制错误,让自己陷入黑暗中:
$result = @mysql_query($sql,$db); // Remove the @ symbol
然后,由于范围,您应该发现$db
不是有效的数据库连接对象。确保将其设置为类变量,然后改为引用$this->db
。
您的Resource id#14
结果是预期的,这就是mysql_query
返回的结果。您可以使用各种mysql_fetch_*
方法在此处解析它,或者只是返回它并让调用者处理解析。
停止使用mysql_*
方法!尽快切换到mysqli
或PDO
(据我所知,遗留应用程序需要时间)。
答案 1 :(得分:1)
$result
总是返回Resource id#14
是php处理的方式,要获取数据,你必须使用php为此获取的数据,如mysql_fetch_array或
mysql_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
这样的错误,你需要调试错误