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

ユーザーが最後にログインしたときの現在の日付/時刻をデータベースに挿入しようとしています。何らかの理由でこれが機能しません。

コードにエラーは表示されないため、実行する必要があります。考えられる問題の1つは、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 に答える