sql中的资源ID 5错误

时间:2014-03-16 23:19:03

标签: php sql

结果是返回资源ID 5错误,不知道该怎么做,但我也是新的

主要问题是我的if语句不起作用,我认为这是由于我的结果     

$query = "select * from logindetails where online='1'";
$result = mysql_query($query);
echo $result;

if (mysql_num_rows($result) == 1) {
    while ($row = mysql_fetch_array($result)) {
        echo $row['online'] . $row['username'] . $row['password'] . $row['emailaddress'] . $row['familyname'] . $row['givenname'];
    }
} else {
}

mysql_close();
?>

4 个答案:

答案 0 :(得分:0)

确实错误。问题是echo $result; - 您无法打印它。它不知道你想要打印什么。另外,我建议使用mysqli

答案 1 :(得分:0)

您并未真正收到错误消息。您所看到的是外部资源的数字资源标识符,在这种情况下,外部资源是数据库中的资源。您正在寻找的是mysql_num_rows(),它会告诉您返回的行数。您将通过以下链接注意到不推荐使用mysql *函数,并且建议您使用mysqli或PDO。

答案 2 :(得分:0)

上面的代码输出资源id 5,因为你在3行中给出了echo,这意味着你的查询是有效的,代码是正确的,试着给出echo mysql_num_rows($ result)

答案 3 :(得分:-1)

而不是echo $result,使用echo $result->Row; $ result本身就是一个对象。您想要访问该对象的Row属性。

如果只有一个用户在线,那么你的if语句才会起作用。如果在线有多个用户,那么您将拥有多行,因此您的if语句会中断。

尝试

foreach ($result as $row) {
    echo $row['online'] . $row['username'] . $row['password'] . $row['emailaddress'] . $row['familyname'] . $row['givenname']. "\n";
 }