mysql_query 总是用 SELECT EXISTS 返回 false

Posted

技术标签:

【中文标题】mysql_query 总是用 SELECT EXISTS 返回 false【英文标题】:mysql_query always returns false with SELECT EXISTS 【发布时间】:2012-09-26 16:37:14 【问题描述】:

我正在尝试使用 EXISTS 语法检查行是否存在。 connect() 函数正在工作(至少在所有其他函数中),但 this 函数总是返回 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;

【问题讨论】:

【参考方案1】:

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

另外请理解 mysql_* 函数现已弃用,您应该继续使用更新的 PDO 或 mysqli_* 函数

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:
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;

你可以使用这个

【讨论】:

以上是关于mysql_query 总是用 SELECT EXISTS 返回 false的主要内容,如果未能解决你的问题,请参考以下文章

asp怎么转成php?

回显mysql_query的所有结果[重复]

2016.6.21 PHP与MqSQL交互之图片读取

php

有没有办法用 mysql_query 设置默认数据库句柄?

mysql_query()执行之后没有结果,数据库中为空