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"
這是預期的結果。
這似乎不工作,太糟糕了。 – Fabian 2011-05-31 18:12:40
只要有可能(大部分時間都是這樣),我不帶雙引號,它們比單引號慢。 var dump sql插入行,我們在這裏沒有看到它,然後var dump select sql,所以我們確保插入和檢索相同的東西! – Melsi 2011-05-31 18:14:14
我實際上在標題中犯了一個愚蠢的錯誤,哎呀。它不應該插入,而是選擇用戶數據。 – Fabian 2011-05-31 18:17:25