查询正在第二次尝试但不是第一次尝试

PHP新手

我想跟踪用户上次登录的时间,因此我在数据库中添加了带时间戳的列,每次用户登录时都可以更新,并在登录功能中添加了更新,但是当我登录时出现错误说“ SQLSTATE [HY000]:一般错误”,数据库没有任何反应,但是如果我再次单击“登录”,它将很好地登录我并根据需要更新表。这是我的登录功能:

public function login($email,$upass)
{
    try
    {
        $stmt = $this->conn->prepare("SELECT * FROM po_users WHERE userEmail=:email_id ");
        $stmt->execute(array(":email_id"=>$email));
        $userRow=$stmt->fetch(PDO::FETCH_ASSOC);

        if($stmt->rowCount() == 1)
        {
            if($userRow['userStatus']=="Y")
            {
                if($userRow['userPass']==md5($upass))
                {

                    $_SESSION['userSession'] = $userRow['userID'];
                    $stmt = $this->conn->prepare("UPDATE po_users SET lastLogIn = current_timestamp WHERE userEmail=:email_id");
                    $stmt->execute(array(":email_id"=>$email));
                    $userRow=$stmt->fetchAll(PDO::FETCH_ASSOC);
                    return true;
                }

有任何想法吗?

花生仁

您实际上无法在更新后使用“ fetchAll” ...因此,请尝试以下操作:

public function login($email,$upass) {
    try {
        $select_user_stmt = $this->conn->prepare("SELECT * FROM po_users WHERE userEmail=:email_id ");
        $select_user_stmt->execute(array(":email_id"=>$email));
        $userRow = $select_user_stmt->fetch(PDO::FETCH_ASSOC);

        if($select_user_stmt->rowCount() == 1) {
            if($userRow['userStatus']=="Y") {
                if($userRow['userPass'] == md5($upass)) {
                    $_SESSION['userSession'] = $userRow['userID'];
                    $update_user_stmt = $this->conn->prepare("UPDATE po_users SET lastLogIn = current_timestamp WHERE userEmail=:email_id");
                    $update_user_stmt->execute(array(":email_id"=>$email));
                    $select_user_stmt->execute(array(":email_id"=>$email)); // do a search again here...
                    $userRow = $select_user_stmt->fetch(PDO::FETCH_ASSOC);
                    return true;
                }

希望这可以帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

视图第一次旋转,但不是第二次

尝试输入结构,第一次效果很好,第二次崩溃

图像是在第二次尝试中传递的,而不是在 Flutter 中的第一次尝试中传递

.on更改功能是第一次而不是第二次起作用?

为什么 strpos 第一次工作,而不是第二次?

为什么第二次尝试 re.search 会在第二次尝试中出错并在第一次尝试中起作用?

VCR在第二次尝试运行测试时无法处理请求(第一次尝试通过)

搜索结果在第二次点击时显示,而不是第一次反应 js

NG表更改页面在第二次点击(不是第一次点击)上的操作

循环中第二次给出第一次机会错误时删除查询

Moq第一次和第二次返回值不同

确定是第一次还是第二次调用方法?

.NET第一次成功后进行第二次Ajax调用

从第一次出现到第二次解析日志

preventDefault第一次使用,但第二次不起作用

平板电脑在第一次点击时悬停,第二次点击

第一次和第二次之间的速度差

毕加索不缓存第一次加载,但第二次没问题

SimpleDateFormat 解析方法第一次起作用,第二次被忽略

FCM Token 第一次不生成,第二次生成

如何找到元素第二次出现的第一次?

浮动div的高度在第一次是零,但在第二次是可以

构造函数第二次失败,但第一次失败

Google地图仅是第一次加载,第二次是灰色

Google地图仅是第一次加载,第二次是灰色

第一次登录无效,但第二次登录有效

AdsConnection 在第二次连接时抛出 EntryPointNotFoundException 但第一次工作

如何第一次插入并第二次更新

在第二次执行时暂停函数的第一次执行(Python)