2013-12-19 62 views
0

由於某種原因,此查詢不起作用。它不會拋出任何錯誤。如果我在傳統的mysqli中使用它。它的工作..即時通訊嘗試將我的SQL轉換爲Pdo。PDO mysql查詢不起作用

$conn = new PDO('mysql:dbname=test;host=localhost', 'root', 'root'); 
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$user_id = is_numeric($_SESSION['user_id']) ? $_SESSION['user_id'] : die(); 
$stmt = $conn->prepare("SELECT * from posts WHERE user_id=:user_id "); 
$stmt->bindParam(':user_id', $user_id); 
$stmt->execute(); 

$rows = $stmt->fetchAll(PDO::FETCH_ASSOC); 
$i=1; 
if ($i=1) { 
foreach ($rows as $row) { 
if (($row["user_id"])==true){ 
echo $row["title"]; 
} 
} 
+0

'$ i = 1;如果($ I = 1)'跆拳道?冗餘檢查和錯誤的運算符 – Phil

+0

我有一個行計數語句.. did not知道如果這是問題,所以我刪除了:D – user3117384

+0

你還有另一個冗餘檢查'($ row [「user_id」])== true'。 – Phil

回答

0

這裏的幾個問題。首先,這...

$ user_id = is_numeric($ _ SESSION ['user_id'])? $ _SESSION ['user_id']:die();

只是可怕的。我也沒有看到session_start()(這可能是你的問題的真正原因)。去喜歡的東西

session_start(); 

if (!(isset($_SESSION['user_id']) && is_numeric($_SESSION['user_id']))) { 
    throw new Exception('Invalid user id in session'); 
} 
$user_id = $_SESSION['user_id']; 

現在你的結果集的迭代...

$stmt->execute(); 
$stmt->setFetchMode(PDO::FETCH_ASSOC); 

foreach ($stmt as $row) { // this is possible because PDOStatement implements Traversable 
    echo $row['title']; 
} 
+0

嗨..感謝您的回覆 – user3117384

+0

@ user3117384不客氣嗎?是否有幫助? – Phil