2016-01-03 87 views
1

我是新来的php和PDO,并且一直在做learn工作,但是在过去的几天里遇到了问题。PDO没有记录显示PHP

什么都不尝试似乎工作。

这里是我的查询到我的数据库

$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" 

我有什么,我过来看了?

+2

http://php.net/manual/en/function.error-reporting.php --- http://php.net/manual/en/pdo.error-handling.php –

+0

这是部分代码不工作我已经从一个页面,已经剥离了它有错误处理:) –

+1

'NOT archive_recieve = 0';'在您的查询?' – SMA

回答

2

NOT在SQL中,本身就是一个一元运算符。没有一个实际的条款,你不能自己放。

在你的情况,你想相合两个独立的条款:

  1. recieve = :recieve
  2. NOT archive_recieve = 0(或者写为archive_recieve <> 0archive_recieve != 0

所以,你需要的一个AND/OR

SELECT * 
FROM messages 
WHERE recieve = :recieve 
    AND NOT archive_recieve = 0 

PS:在您的查询中使用SELECT *被认为是不好的做法。开发人员应始终注意最终要显示的数据。

+0

感谢您的回答是的,我只使用SELECT *,因为我需要表中的所有信息:) –