使用PDO插入两行而不是一个MySQL

时间:2017-09-10 21:14:33

标签: php mysql pdo

我试图将登录数据插入登录表中,并且我正在使用此代码:

的login.php

$verify = password_verify($password, $results['user_password']);
if($verify){
    $session->logUser($results['user_id']);
    header('Location: dashboard.php');
}else{
    //Error
}

然后在 session.php 中我有一个会话类:

public function logUser($userId){
    $_SESSION['userId'] = $userId;

    $token = $this->createToken();
    $timestamp = time() + (86400 * 14);

    $connection = new Connection;
    $db = $connection->openConnection();

    $stmt = $db->query("INSERT INTO logins (login_token, login_userId, login_expires) VALUES ('$token', '$userId', '$timestamp')");
    $stmt->execute();
}

这是正常工作,正在生成令牌,并且所有数据都是正确的但是当我检查数据库时,它创建了两条记录(相同的但具有不同的auto_increment ID)。

为什么会这样? 提前谢谢。

编辑: 我正在尝试创建持久登录时执行此令牌,我还没有创建cookie,但首先我想要测试登录数据是否正确存储在数据库中。

1 个答案:

答案 0 :(得分:4)

您正在执行两次。删除$ stmt-> execute();