1

更新: '' 的建议围绕 $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 行。

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

4

3 回答 3

2

尝试

$query = mysql_query("UPDATE users 
                SET lastLoginTime = '$lastLoginTime' 
                    WHERE username = '$username'");
于 2012-05-14T14:27:30.683 回答
1

它应该是:

WHERE username = '$username'"); 

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

于 2012-05-14T14:27:37.170 回答
0

我相信你忘了引用 $username,像这样引用 '$username'

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

if (!$query) {
die('<br>Invalid query: ' . mysql_error());
}
于 2012-05-14T14:34:22.860 回答