2011-05-31 85 views
0

我遇到了以下問題,我似乎無法解決。我在下面的函數使用PDO與MySQL:PHP/PDO從會話變量數據庫中選擇數據

public function checkST($database) { 
     if (isset($_SESSION['user'])) { 
      $ticket = $_SESSION['user']['session_ticket']; 
      $check = $database->query("SELECT * FROM users WHERE session_ticket = 'ST-627eed61b0dcc8fe04068e23c9e9ace10fd59cf7-8104' LIMIT 1");   
      $result = $check->fetchColumn(); 
      var_dump($result); 
      if ($result != 1) { 
       header('Location: ../?p=login'); 
      } 
     } else { 
      header('Location: ../?p=login'); 
     } 
    } 


$ticket = $_SESSION['user']['session_ticket']; 
      $check = $database->query("SELECT * FROM users WHERE session_ticket = '".$ticket."' LIMIT 1");   
      $result = $check->fetchColumn(); 
      var_dump($result); 

回報:

布爾(假)

但是,當我插入我的會話票據,如:

$ticket = $_SESSION['user']['session_ticket']; 
      $check = $database->query("SELECT * FROM users WHERE session_ticket = 'ST-627eed61b0dcc8fe04068e23c9e9ace10fd59cf7-8104' LIMIT 1");   
      $result = $check->fetchColumn(); 
      var_dump($result); 

它返回:

string(1) "1" 

這是預期的結果。

回答

0

也不是那麼清楚。不過試試這個:

$勾選= $數據庫 - >查詢( 'SELECT * FROM用戶WHERE session_ticket =' $票「LIMIT 1' );

+0

這似乎不工作,太糟糕了。 – Fabian 2011-05-31 18:12:40

+0

只要有可能(大部分時間都是這樣),我不帶雙引號,它們比單引號慢。 var dump sql插入行,我們在這裏沒有看到它,然後var dump select sql,所以我們確保插入和檢索相同的東西! – Melsi 2011-05-31 18:14:14

+0

我實際上在標題中犯了一個愚蠢的錯誤,哎呀。它不應該插入,而是選擇用戶數據。 – Fabian 2011-05-31 18:17:25