Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
方法返回资源id#14 PHP/MySQL_Php_Mysql - Fatal编程技术网

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

方法返回资源id#14 PHP/MySQL,php,mysql,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."'

新来的

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()
它返回Null

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


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

$result
始终返回
资源id#14
是php处理数据的方式,要获取数据,必须使用php为此提供的函数,如或

$feed\u item
将查询结果放入数组中

注意:


尽量避免抑制
@mysqli_query
中的
@
错误,您需要获取错误以调试
$result
始终返回
资源id#14
是php处理的方式,要获取数据,必须使用php为此提供的函数,如或

$feed\u item
将查询结果放入数组中

注意:

尽量避免抑制
@mysqli_query
中的
@
等错误,您需要获得错误才能调试以下几件事:

  • 你在压制错误,让自己蒙在鼓里:

    $result=@mysql_query($sql,$db);//删除@符号

  • 然后,您会发现由于作用域的原因,
    $db
    不是有效的数据库连接对象。确保将其设置为类变量,然后改为引用
    $this->db

  • 您的
    resourceid#14
    结果是预期的,这就是
    mysql_查询
    返回的结果。您可以在这里使用各种
    mysql\u fetch.*
    方法对其进行解析,或者简单地返回它并让调用方处理解析

  • 停止使用
    mysql.*
    方法!尽快切换到
    mysqli
    PDO
    (我知道这可能需要时间处理遗留应用程序)

  • 有几件事:

  • 你在压制错误,让自己蒙在鼓里:

    $result=@mysql_query($sql,$db);//删除@符号

  • 然后,您会发现由于作用域的原因,
    $db
    不是有效的数据库连接对象。确保将其设置为类变量,然后改为引用
    $this->db

  • 您的
    resourceid#14
    结果是预期的,这就是
    mysql_查询
    返回的结果。您可以在这里使用各种
    mysql\u fetch.*
    方法对其进行解析,或者简单地返回它并让调用方处理解析

  • 停止使用
    mysql.*
    方法!尽快切换到
    mysqli
    PDO
    (我知道这可能需要时间处理遗留应用程序)


  • $db看起来像您的连接字符串,您正在函数内部使用,因此您可能需要将其用作全局$db;在使用函数之前先在函数内部执行。$db?如果您没有在
    mysql\u查询
    调用中抑制错误,您将看到它失败的原因。@maximl337
    mysql\u查询
    返回一个资源。这就是它的工作原理。你在期待什么?请参阅@AbhikChakraborty
    global
    不应在OOP中使用。最好使用
    $this->db
    或类似工具。$db看起来像您的连接字符串,您正在函数内部使用,因此可能需要作为全局$db使用;在使用函数之前先在函数内部执行。$db?如果您没有在
    mysql\u查询
    调用中抑制错误,您将看到它失败的原因。@maximl337
    mysql\u查询
    返回一个资源。这就是它的工作原理。你在期待什么?请参阅@AbhikChakraborty
    global
    不应在OOP中使用。最好使用
    $this->db
    或类似工具。
    $feed = new my_feed;
    
    echo $feed->get_feed($uid);
    
    $result = @mysql_query($sql,$db); check_sql(mysql_error(), $sql, 0);
    
    while($list = mysql_fetch_array($result)) {
    
        $feed_item[] = $list;
    }
    
    return $feed_item;