0

我正在尝试将当前日期/时间作为用户上次登录的时间插入数据库。由于某种原因,这不起作用。
在同一页面上运行的其他插入脚本运行良好,并且连接正常。
我使用相同的语法在整个站点中插入其他内容,所以我不明白有什么问题。
我可以保证else当我输入密码时该部分正在执行。

这是我正在谈论的一段代码。

if(!$pwVer){ 
     // code to execute if the password is incorrect.
} else {

    $dateT = date("Y-m-d H:i:s");

    $up_date = $con->prepare("INSERT INTO tbl_user_test (user_last_login) VALUES (:l_login)");
    $up_date->bindParam(':l_login', $dateT);

    $up_date->execute();

    validateUser($userid); //sets the session data for this user


    header("Location: cart.php");
    $con = null;
    die();
}

一些背景:

  • 如果密码正确,$pwVer 返回 `true`。
  • `tbl_user_test` 和 `user_last_login` 都完全按照它们在数据库中的方式编写。

提前致谢!

4

3 回答 3

3

我正在尝试将当前日期/时间作为用户上次登录的时间插入数据库。由于某种原因,这不起作用。

您的代码中没有可见的错误,因此应该执行它。一个可能的问题是 PDO 处于静默模式,它不会告诉您发生了什么错误或是否发生了错误。将 PDO 设置为失败并出现异常。

此外,无需自己构建当前日期;您可以使用 SQL 的NOW().

<?php
$con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
try {
    $up_date = $con->prepare("INSERT INTO tbl_user_test (user_last_login) VALUES (NOW());");
    $up_date->execute();
}
catch( Exception $e ) {
    echo $e; exit;
}

header("Location: cart.php");
$con = null;
die();
于 2012-07-05T07:21:49.970 回答
2

您是否在当前日期时间尝试 NOW() ?

于 2012-07-05T07:15:32.187 回答
2

一旦检查这个

$up_date->bindParam(':l_login', $dateT, PDO::PARAM_STR);
于 2012-07-05T07:16:13.703 回答