更新mysql中的lastlogin列值

时间:2012-06-08 10:11:46

标签: php mysql

我想更新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中更新

5 个答案:

答案 0 :(得分:0)

要么您没有看到mysql错误,要么找不到您要查找的电子邮件地址。

答案 1 :(得分:0)

您必须在函数updatelogin

中传递$ email

因为在updatelogin

中无法访问$ email

您在更新查询中使用$ email而非$ regemail的其他内容。

答案 2 :(得分:0)

问题在于,在功能updatelogin($lastlogin)中,您尚未定义$email将保留的内容。

如果您在查询更新语句($query = UPDATE .....之后)

之后回显查询
echo $query

你会看到你的问题是什么。

更新1

我认为在$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中使用