PHP/PDO从会话变量数据库中选择数据
问题描述:
我遇到了以下问题,我似乎无法解决。我在下面的函数使用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"
这是预期的结果。
答
也不是那么清楚。不过试试这个:
$勾选= $数据库 - >查询( 'SELECT * FROM用户WHERE session_ticket =' $票“LIMIT 1' );
这似乎不工作,太糟糕了。 – F* 2011-05-31 18:12:40
只要有可能(大部分时间都是这样),我不带双引号,它们比单引号慢。 var dump sql插入行,我们在这里没有看到它,然后var dump select sql,所以我们确保插入和检索相同的东西! – Melsi 2011-05-31 18:14:14
我实际上在标题中犯了一个愚蠢的错误,哎呀。它不应该插入,而是选择用户数据。 – F* 2011-05-31 18:17:25