2016-01-03 139 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 *,因爲我需要表中的所有信息:) –