0

私はlastlogin列の値を更新したい.iはこのようなコードを書いたが、列は更新されていない.私はクエリを挿入するためにmain.jsにいくつかのコードを書いた.here私は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列が更新されない理由を教えてください

4

5 に答える 5

0

表示されないmysqlエラーがあるか、検索しようとしている電子メールアドレスが存在しません。

于 2012-06-08T10:14:43.690 に答える
0

関数 updatelogin で $email を渡す必要があります

updatelogin 内で $email にアクセスできないため

また、更新クエリで $regemail の代わりに $email を使用したこともあります。

于 2012-06-08T10:15:43.197 に答える
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 に答える
0

問題は、関数でupdatelogin($lastlogin)$emailが保持されるかを定義していないことです。

クエリ更新ステートメントの後にクエリをエコーする場合 (後$query = UPDATE .....)

echo $query

あなたの問題が何であるかがわかります。

更新 1

私はあなたが$query声明の前にこのようなものを持っているべきだと思います
$email=$details_arr['email'];

また

$email関数に値を渡すupdatelogin($lastlogin, $email)

于 2012-06-08T10:54:03.537 に答える
-1

まず、コードにエラーがあります。alert('hi)JavaScript関数です。print_r('hi)将来的に試してみてください。mysql の形式が正しくありません。

$query="UPDATE users set last_login='$lastlogin' where email='".$email."'";

$lastlogin ではなく $email をエスケープしました。これを試して:

$query="UPDATE users set last_login='".$lastlogin."' where email='".$email."'";

また、前述のように、$email を関数に渡して mysql で使用する必要があります

于 2012-06-08T10:19:34.600 に答える