我似乎無法弄清楚這段 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()
。
- 1 回答
- 0 關注
- 151 瀏覽
添加回答
舉報
0/150
提交
取消