Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php插入、查找、使用mysql更新_Php_Mysql_Pdo - Fatal编程技术网

php插入、查找、使用mysql更新

php插入、查找、使用mysql更新,php,mysql,pdo,Php,Mysql,Pdo,我退出PHP循环已经有一段时间了,昨天回来时,我很快发现许多与mysql交互的旧PHP函数正在被淘汰。这很好,但我真的很难使用新的pdo代码。假设一个用户要登录,我想看看他的用户名/密码组合是否正确。然后我想更新他的登录计数,将他上次登录的日期/时间移到“previouslogin”并用当前日期/时间更新“lastlogin”。我有问题。我无法将logincount设置为increment,甚至无法将变量设置为increment,我无法将lastlogin分配给变量,这会阻止我更新previou

我退出PHP循环已经有一段时间了,昨天回来时,我很快发现许多与mysql交互的旧PHP函数正在被淘汰。这很好,但我真的很难使用新的pdo代码。假设一个用户要登录,我想看看他的用户名/密码组合是否正确。然后我想更新他的登录计数,将他上次登录的日期/时间移到“previouslogin”并用当前日期/时间更新“lastlogin”。我有问题。我无法将logincount设置为increment,甚至无法将变量设置为increment,我无法将lastlogin分配给变量,这会阻止我更新previouslogin。你能告诉我我做错了什么吗

    public function accountLogin()
{
    $sql = "SELECT UserID, UserName, PositionID, LoginCount, LastLogin
            FROM users
            WHERE UserName=:user
            AND Password=:pass
            LIMIT 1";
    try
    {
        $stmt = $this->_db->prepare($sql);
        $stmt->bindParam(':user', $_POST['username'], PDO::PARAM_STR);
        $stmt->bindParam(':pass', $_POST['password'], PDO::PARAM_STR);
        $stmt->execute();
        if($stmt->rowCount()==1)
        {
            $_SESSION['Username'] = htmlentities($_POST['username'], ENT_QUOTES);
            $_SESSION['LoggedIn'] = 1;
            $_SESSION['UserID']= $stmt->fetch()[0];
            $_SESSION['PositionID']= $stmt->fetch()[2];                                
            $logincount= $stmt->fetch()[3]; 
            $lastlogin= $stmt->fetch()[4];
            $sql = "UPDATE users SET LoginCount = ". $logincount + 1 . ", 
            PreviousLogin = " . $lastlogin ."
            WHERE UserID = " . $_SESSION['UserID'];

            $stmt = $this->_db->exec($sql);

            return TRUE;

要将MySQL字段增加1,可以执行LoginCount=LoginCount+1

public function accountLogin()
{
    $sql = "SELECT UserID, UserName, PositionID, LoginCount, LastLogin
        FROM users
        WHERE UserName=:user
        AND Password=:pass
        LIMIT 1";
try
{
    $stmt = $this->_db->prepare($sql);
    $stmt->bindParam(':user', $_POST['username'], PDO::PARAM_STR);
    $stmt->bindParam(':pass', $_POST['password'], PDO::PARAM_STR);
    $stmt->execute();
    if($stmt->rowCount()==1)
    {
        $row = $stmt->fetch( PDO::FETCH_OB );
        $_SESSION['Username'] = htmlentities($row->UserName, ENT_QUOTES, "UTF-8");
        $_SESSION['LoggedIn'] = 1;
        $_SESSION['UserID']= $row->UserID;
        $_SESSION['PositionID']= $row->PositionID;                                
        $lastlogin= $row->LastLogin;
        $sql = "UPDATE users SET LoginCount = LoginCount + 1, 
        PreviousLogin = " . $lastlogin ."
        WHERE UserID = " . $_SESSION['UserID'];

        $stmt = $this->_db->exec($sql);

        return TRUE;

您的代码只适用于PHP5.4。您安装了什么?PHP5.4。它工作了一半,但我不能将PreviousLogin设置为lastlogin,并且我的mysql表没有将lastlogin更新为当前时间戳,即使登录计数正在增加。