PHP/PDO使用会话变量从数据库中选择数据

PHP/PDO使用会话变量从数据库中选择数据,php,mysql,pdo,Php,Mysql,Pdo,我有以下问题,我似乎无法解决。我在以下函数中使用PDO和MySQL: public function checkST($database) { if (isset($_SESSION['user'])) { $ticket = $_SESSION['user']['session_ticket']; $check = $database->query("SELECT * FROM users WHERE session_tic

我有以下问题,我似乎无法解决。我在以下函数中使用PDO和MySQL:

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"

这是预期的结果

不太清楚。。但是,请尝试以下方法:


$check=$database->query'SELECT*FROM USERSESSION_ticket='.$ticket.'LIMIT 1'

只要有可能,大多数时候我都不使用双引号,它们比单引号慢。Var转储sql插入行,我们在这里看不到它,然后Var也转储select sql,所以我们确保插入和检索相同的内容!我在标题上犯了个愚蠢的错误,哎呀。它不应该是插入,而是选择用户数据。我已经整理好了。似乎在登录后,我将旧的会话票证插入会话变量,而不是新的更新的会话票证!真的,我今天没空。