【发布时间】:2020-10-13 07:51:11
【问题描述】:
我似乎无法弄清楚这段 PHP 代码有什么问题:
$sql = $db->prepare("SELECT EXISTS(SELECT 1 FROM profile WHERE uid = ?)");
$p_already_exists = $sql->execute([$_SESSION['uid']]);
我正在运行 sqlite3 PDO 模块,不管 'uid' 是否在数据库中,$p_already_exists 总是分配为 1。如果它不在,我希望它为 0数据库,如果数据库中至少有一条记录,则为 1。
我已经仔细检查过,回显 $_SESSION['uid'] 给我的值与数据库中的 uid (TEXT) 相同。
有人知道为什么这对我不起作用吗?归根结底,我只是在寻找一种返回布尔值的有效方法(因此我不使用 COUNT)。感谢您的帮助。
参考How to check whether SELECT EXISTS returns a value or not?
【问题讨论】:
-
您正在查看
execute方法的返回值 - 这与语句是否找到任何内容无关,仅反映是否该语句可以成功执行且没有错误。