-1

尝试使用此功能从我的数据库中获取未读消息,但我以这样的资源 id 错误结束:“ Resource id #45

function unread_message_count() {
    $sql = "SELECT conversations_messages.message_id, conversations_members.user_id,             conversations_members.conversation_last_view, conversations_messages.message_date 
            FROM conversations_members 
            INNER JOIN conversations_messages ON conversations_messages.user_id = conversations_members.user_id 
            WHERE conversations_members.conversation_last_view < conversations_messages.message_date AND conversations_members.user_id =     {$_SESSION['user_id']}";
            $result = mysql_query($sql);
            return $result;
}

我以这种方式调用该函数,但没有打印:

$count = unread_message_count();
echo $count;
4

2 回答 2

0

mysql_query()在成功或FALSE错误时返回资源,您需要从结果中获取数据,例如:

...
$result = mysql_query($sql);
$rows = mysql_fetch_array($result);
return $rows;

顺便说一句,mysql_ 已弃用,应使用MySQLiPDO_MySQL扩展。

于 2013-10-10T04:47:06.573 回答
0

mysql_query()返回一个资源。其中的to 字符串(通过使用echoto 输出隐式触发)是Resource ID #后跟 id。

PHP 中的资源只能与其他 PHP 函数一起使用。这包括但不限于文件、curl、ftp 句柄等。

使用mysql_fetch_array()(或类似的)

试试这个

function unread_message_count() {
    $sql = "SELECT conversations_messages.message_id, conversations_members.user_id,             conversations_members.conversation_last_view, conversations_messages.message_date 
            FROM conversations_members 
            INNER JOIN conversations_messages ON conversations_messages.user_id = conversations_members.user_id 
            WHERE conversations_members.conversation_last_view < conversations_messages.message_date AND conversations_members.user_id =     {$_SESSION['user_id']}";
            $result = mysql_query($sql);
            $data = mysql_num_rows($result);
            return $data;
}
于 2013-10-10T04:47:53.990 回答