更新:"的建议在$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 行。
如果我知道该行存在并且其他一切正常,什么可能是无效的?
尝试
$query = mysql_query("UPDATE users
SET lastLoginTime = '$lastLoginTime'
WHERE username = '$username'");
它应该是:
WHERE username = '$username'");
请注意我在 $username' 变量周围添加的撇号。
我相信
你忘了引用$username,引用这样的"$username">
$query = mysql_query("UPDATE users
SET lastLoginTime = '$lastLoginTime'
WHERE username = '$username'");
if (!$query) {
die('<br>Invalid query: ' . mysql_error());
}