为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的 SQL 执行(选择存在)函数总是返回 1?

为什么我的 SQL 执行(选择存在)函数总是返回 1?

PHP
陪伴而非守候 2023-06-24 18:45:09
我似乎无法弄清楚这段 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 的原因)。
查看完整描述

1 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

PDOStatement::execute()返回一个布尔值,成功时返回 TRUE,失败时返回 FALSE:

https://www.php.net/manual/en/pdostatement.execute.php

如果您想获取 SQL 语句执行返回的实际结果,而不是执行本身的状态,您应该使用其中一个函数,fetch*例如fetchColumn()after call execute()


查看完整回答
反对 回复 2023-06-24
  • 1 回答
  • 0 关注
  • 178 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号