我是php和PDO新手,一直在做一个learn
随你去的项目,但在过去几天遇到了问题。
我试过什么都没用。
这是我对数据库的查询
$recieve = "$_SESSION[MemId]";
$sender = "$_SESSION[MemId]";
// select all data
$query = "SELECT * FROM messages
WHERE recieve = :recieve
NOT archive_recieve = 0";
$stmt = $con->prepare($query);
$stmt->bindParam(':recieve', $recieve);
$stmt->execute();
我知道问题出在下面的查询中
$query = "SELECT * FROM messages
WHERE recieve = :recieve"
我看过头了什么?
最佳答案
NOT
在SQL中,本身只是一个一元运算符。如果没有实际的从句,你就不能把它单独放进去。
在你的案例中,你试图结合两个独立的条款:recieve = :recieve
NOT archive_recieve = 0
(也可以写成archive_recieve <> 0
或archive_recieve != 0
)
所以,你需要一个AND
/OR
等等。
SELECT *
FROM messages
WHERE recieve = :recieve
AND NOT archive_recieve = 0
注:在查询中使用
SELECT *
被认为是不好的做法。开发人员应该始终知道最后要显示什么样的数据。关于php - PDO没有记录得到显示PHP,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34578330/