我想更新lastlogin列值.i写了这样的代码,但是列没有更新.i在main.js中编写了一些代码用于插入查询。我没有写任何代码来更新lastlogin列值在main.js. 为了更新lastlogin列,我在dbfunc.php中编写了updatelogin函数,如下所示。
function updatelogin($lastlogin)
{
alert("hi");
$query="UPDATE users set last_login='$lastlogin' where email='".$email."'";
$queryresult= mysql_query($query);
$count=mysql_num_rows($queryresult);
if($count>0)
{
return 1;
}
else
{
return 0;
}
}
function register($details_arr)
{
$emailcheck=db_func::checkemail($details_arr['email']);
if($emailcheck == 0){
//print_r($details_arr);
$regemail=$details_arr['email'];
$regpwd=$details_arr['password'];
$zip=$details_arr['zip'];
$secqun=$details_arr['secqun'];
$answer=$details_arr['answer'];
$now=date("Y-m-d H:i:s",time());
$lastlogin=date("Y-m-d H:i:s",time());
$query= "INSERT INTO users (email,md5pwd,zip,squestion,sanswer,member_since,last_login,last_ip) VALUES('".$regemail."','".$regpwd."','".$zip."','".$secqun."','".$answer."','".$now."','".$lastlogin."','".$_SERVER['REMOTE_ADDR']."')";
$queryresult=mysql_query($query);
echo mysql_error();
if($queryresult)
{
non_db_func::loginuser($email);
db_func::updatelogin($details_arr['lastlogin']);
return 1;
}
else
return 0;
}
else{
return 2;
}
任何人都可以告诉我,为什么lastlogin列没有在我的db中更新
答案 0 :(得分:0)
要么您没有看到mysql错误,要么找不到您要查找的电子邮件地址。
答案 1 :(得分:0)
您必须在函数updatelogin
中传递$ email因为在updatelogin
中无法访问$ email您在更新查询中使用$ email而非$ regemail的其他内容。
答案 2 :(得分:0)
问题在于,在功能updatelogin($lastlogin)
中,您尚未定义$email
将保留的内容。
如果您在查询更新语句($query = UPDATE .....
之后)
echo $query
你会看到你的问题是什么。
我认为在$query
陈述之前你应该有这样的话
$email=$details_arr['email'];
将$email
函数中的updatelogin($lastlogin, $email)
值传递给{{1}}
答案 3 :(得分:0)
您能否请用下面的功能替换您的功能,然后重试!
function updatelogin($lastlogin,$email)
{
$query="UPDATE users set last_login='".$lastlogin."' where email='".$email."'";
$queryresult= mysql_query($query);
$count=mysql_num_rows($queryresult);
if($count>0)
{
return 1;
}
else
{
return 0;
}
}
function register($details_arr)
{
$emailcheck=db_func::checkemail($details_arr['email']);
if($emailcheck == 0){
//print_r($details_arr);
$regemail=$details_arr['email'];
$regpwd=$details_arr['password'];
$zip=$details_arr['zip'];
$secqun=$details_arr['secqun'];
$answer=$details_arr['answer'];
$now=date("Y-m-d H:i:s",time());
$lastlogin=date("Y-m-d H:i:s",time());
$query= "INSERT INTO users (email,md5pwd,zip,squestion,sanswer,member_since,last_login,last_ip) VALUES('".$regemail."','".$regpwd."','".$zip."','".$secqun."','".$answer."','".$now."','".$lastlogin."','".$_SERVER['REMOTE_ADDR']."')";
$queryresult=mysql_query($query) or die(mysql_error());
if($queryresult)
{
non_db_func::loginuser($email);
db_func::updatelogin($lastlogin,$regemail);
return 1;
}
else
{
return 0;
}
}else{
return 2;
}
}
答案 4 :(得分:-1)
首先,代码中存在错误。 alert('hi)
是一个javascript函数。将来尝试print_r('hi)
,第二。您的mysql格式不正确。
$query="UPDATE users set last_login='$lastlogin' where email='".$email."'";
你已经转发了$ email但不是$ lastlogin。试试这个:
$query="UPDATE users set last_login='".$lastlogin."' where email='".$email."'";
同样如上所述,您需要将$ email传递给您的函数以在mysql中使用