Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-返回另一列数据的数据库列数据查询_Php_Mysql_Database - Fatal编程技术网

PHP-返回另一列数据的数据库列数据查询

PHP-返回另一列数据的数据库列数据查询,php,mysql,database,Php,Mysql,Database,我正在为一个学校项目编写一个基本的PHP登录系统,目前我正在尝试实现电子邮件激活。下面是我的代码片段 $query = " SELECT id, username, password, salt, email useractivestatus FROM users WHERE

我正在为一个学校项目编写一个基本的PHP登录系统,目前我正在尝试实现电子邮件激活。下面是我的代码片段

        $query = " 
        SELECT 
            id, 
            username, 
            password, 
            salt, 
            email
            useractivestatus
        FROM users 
        WHERE 
            username = :username 
    "; 

    // The parameter values 
    $parameters = array( 
        ':username' => $_POST['username'] 
    ); 

    try 
    { 
        // Execute the query against the database 
        $stmt = $db->prepare($query); 
        $result = $stmt->execute($parameters); 
    } 
    catch(PDOException $err) 
    { 

        die("Failed to run query: " . $err->getMessage()); 
    } 
    $row = $stmt->fetch();
    if($row) 
    {
    if($active != $row['useractivestatus'] );
    {
        die("Account has not been activated");
    }

问题在于使用var_dump$row['useractivestatus'],我可以看到它总是从email列返回数据,导致查询总是返回false并触发die响应。我可以执行var_dump$row['任何其他列'],它返回正确的数据。为什么在查询useractivestatus列时it会返回电子邮件?

您的查询中缺少一个逗号,因为这样的电子邮件实际上别名为useractivestatus,尝试从电子邮件列中进行选择将失败

$query = " 
SELECT 
    id, 
    username, 
    password, 
    salt, 
    email, -- this comma was missing
    useractivestatus
FROM users 
WHERE 
    username = :username 

发生在我们所有人身上,快乐编码:)