mysql_query始终使用SELECT EXISTS返回false

时间:2012-09-26 16:37:14

标签: php mysql select exists

我正在尝试使用EXISTS语法检查是否存在行。 connect()函数正在工作(至少在所有其他函数中),但此函数始终返回false。尝试通过phpMyAdmin时,查询给出了真或假。所以我的问题;如何用PHP阅读答案?我不想使用普通的SELECT语句,因为我已经阅读了一些基准测试,他们说这种方法更快。

function isOnline($userid){
    $conn = connect();
    $query = "SELECT EXISTS (SELECT 1 FROM `usersonline` WHERE userid=$userid);";
    return mysql_query($query, $conn) ? false : true;
}

3 个答案:

答案 0 :(得分:3)

mysql_query函数仅指示查询是否成功执行。您需要读取返回的数据的第一行,可能使用mysql_fetch_row并确定它是否为真或假。

另请注意,mysql_ *函数现已弃用,您应继续使用更新的PDO或mysqli_ *函数

答案 1 :(得分:0)

您的函数始终返回false,因为您的查询总是成功。

您需要从查询的结果集中获取结果并对其进行测试。

答案 2 :(得分:0)

function isOnline($userid){
    $conn = connect();
    $query = mysql_query("SELECT `id` FROM `usersonline` WHERE userid=$userid");
    $row = mysql_num_rows($query)
    return if(row>=1) ? true : false;
}

您可以使用此