生成unread_message计数器以资源 ID 错误结束


Building unread_message counter ends in resource id error

尝试使用此函数从我的数据库中获取未读消息,但我以这样的资源 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;
mysql_query(

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

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

顺便说一句,mysql_被弃用,应该使用MySQLi或PDO_MySQL扩展。

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

PHP

中的资源只应该与其他 PHP 函数一起使用。这包括但不限于文件、卷曲、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;
}