使用Mysql EXISTS和PHP查找表中是否存在ID

时间:2014-02-01 13:40:52

标签: php mysql sql

我有一张表记录了已经给出测试的用户的记录。因为我希望用户只尝试一次测试,所以首先我检查他是否已经允许他进行测试。

Test_Attempted

-------------------------------
User_id    |  Name
-------------------------------

现在我正在使用以下查询

select exists(select user_id from Test_Attempted where user_id=45) as present

但由于id 45已经存在,因此会返回

+---------+
| present |
+---------+
|       1 |
+---------+

现在我很困惑如何在if-else中使用它(使用PDO)

if(present)
   echo "You have given test";
else
   echo "Take test";

我是否需要使用while循环遍历行,即使返回的行是单个?

1 个答案:

答案 0 :(得分:1)

不,如果你知道那里总是只有一行,你就不需要一个while循环。在我看来,这应该是直观明显的,但几乎没有一天我没有看到一个包含已知单行的while循环的问题。

$row = $stmt->fetch(PDO::FETCH_ASSOC);
if ($row['present']) {
    echo "You have given test";
} else {
    echo "Take test";
}