2012-08-12 102 views
0

我想僅使用連接查詢我想要從數據庫中獲取的數據。然而,我無法讓我的查詢工作。與SQL查詢結合使用

這是我的代碼。看看,

<?php 

$user_id= $_COOKIE['user_id']; 

$dbc= mysqli_connect('localhost', 'root', '', 'beta'); 
$query=" SELECT * FROM posts LEFT JOIN relationships ON (posts.user_id=  
relationship.user_2 AND relationships.user_1 = $user_id AND relationship.status = 4 OR   
3 OR 1)"; 
$result= mysqli_query($dbc, $query); 

echo mysqli_num_rows($result); 

?> 

我只是試圖通過查看它是否返回任何行來查看查詢是否工作。但它不會起作用。我可能做錯了什麼?

回答

0

你在查詢中混合了「關係」和「關係」,也許堅持表名是什麼?

1

您的ORWHERE子句條件中的語法不正確。嘗試是這樣的:

SELECT * 
FROM posts a 
      LEFT JOIN relationships b 
       ON a.user_id = b.user_2 
WHERE b.user_1 = $user_id AND 
     b.status IN (1,3,4) 

我建議你使用PDOMYSQLi擴展。

在PDO,它看起來是這樣的:

<?php 
$stmt = $dbh->prepare("SELECT * 
         FROM posts a 
          LEFT JOIN relationships b 
           ON a.user_id = b.user_2 
        WHERE b.user_1 = ? AND 
          b.status IN (1,3,4)"); 

$stmt->bindParam(1, $user_id); 
$stmt->execute(); 

?> 

記住,總是過濾你的輸入特別是用它查詢數據庫。