0

我想更新 lastlogin 列的值。我写了这样的代码,但是列没有更新。我在 main.js 中写了一些代码来插入查询。这里我没有写任何代码来更新 main 中的 lastlogin 列值。 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 列

4

5 回答 5

0

要么你有一个你没有看到的 mysql 错误,要么你试图找到的电子邮件地址不存在。

于 2012-06-08T10:14:43.690 回答
0

您必须在函数 updatelogin 中传递 $email

因为在 updatelogin 中无法访问 $email

还有你在更新查询中使用 $email 而不是 $regemail 的其他东西。

于 2012-06-08T10:15:43.197 回答
0

问题是在函数中updatelogin($lastlogin)你还没有定义$email将持有什么。

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

echo $query

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

更新 1

我认为你应该在$query声明之前有这样的东西
$email=$details_arr['email'];

或者

在函数中传递$email值作为updatelogin($lastlogin, $email)

于 2012-06-08T10:54:03.537 回答
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;    
    }
}
于 2012-06-08T10:59:30.447 回答
-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 中使用

于 2012-06-08T10:19:34.600 回答