MySQL PHP查询无效 - 找不到列

时间:2012-05-14 14:24:58

标签: php mysql sql variables

更新: ''围绕$ username工作的建议。谢谢!但是现在,该表实际上并没有从$ lastLoginTime更新。

我的查询存在一些问题,我似乎无法理解我的生活,而且我处于停顿状态。

我们来看看代码。

function checkTOS($preusergrab){
include("includes/opendb.php");

$query = "SELECT * FROM users WHERE username='".$preusergrab."'";
$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_assoc($result)){
    $resultset[] = $row;
    $TOS = $row['acceptTOS'];
    }

mysql_free_result($result);

 if($TOS == 1){
 // return to processor

    $lastLoginTime = time();

    $query = mysql_query("UPDATE users 
                    SET lastLoginTime = '$lastLoginTime' 
                        WHERE username = $username");

                        if (!$query) {

             die('<br>Invalid query: ' . mysql_error());
            }


 }elseif($TOS == 0 || $TOS = ''){
    header("Location: http://partner.domain.com/terms.php?action=show");
    die();
}else{
echo 'Internal Application Error:';
echo 'Value unrecognizable.';
echo '<br>Please alert someone at user@domain.com';
die();
}
 }

现在,问题出现在这一部分:

    $lastLoginTime = time();

    $query = mysql_query("UPDATE users 
                    SET lastLoginTime = '$lastLoginTime' 
                        WHERE username = $username");

                        if (!$query) {

             die('<br>Invalid query: ' . mysql_error());
            }

它说:

   Invalid query: Unknown column 'theuser' in 'where clause'

在这种情况下,'theuser'是$ preusergrab代表的用户。

在我的表中,用户名是主键,第0行。

如果我知道行在那里并且其他一切都有效,那么什么可能是无效的?

3 个答案:

答案 0 :(得分:2)

尝试

$query = mysql_query("UPDATE users 
                SET lastLoginTime = '$lastLoginTime' 
                    WHERE username = '$username'");

答案 1 :(得分:1)

应该是:

WHERE username = '$username'"); 

请注意我在$ username'变量周围添加的撇号。

答案 2 :(得分:0)

我相信你忘记引用$ username,引用如此'$ username'

$query = mysql_query("UPDATE users 
SET lastLoginTime = '$lastLoginTime' 
WHERE username = '$username'");

if (!$query) {
die('<br>Invalid query: ' . mysql_error());
}