我是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 <> 0archive_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/

10-10 16:18