zoukankan      html  css  js  c++  java
  • PDO exec 执行时出错后如果修改数据会被还原?

    PDO exec 执行时出错后如果修改数据会被还原?

    现象

    FastAdmin 更新了 1127 版本,但是使用在线安装方式出现无法修改管理员密码的问题。
    一直是默认的 admin 123456 密码。

    分析

    使用 VSCODE 加 PHP Debug 进行调试发现当执行以下语句时数据库没有被改变。

    $pdo->query("UPDATE {$mysqlPrefix}admin SET username = '{$adminUsername}', email = '{$adminEmail}',password = '{$newPassword}', salt = '{$newSalt}' WHERE username = 'admin'");
    

    但是我在这条语句后台加上一条查询 SELECT 显示数据是变了的。

    结果

    这个问题的原因是因为 user 表小了一行默认值导致。
    但有以下两个疑问。

    1. PDO 执行出错没有报错。
    2. PDO exec 执行 SQL 后,再执行修改数据没有生效,查询时时的确是正确的数据,但是看数据库实际数据却是错的。
  • 相关阅读:
    Codeforces899D Shovel Sale(思路)
    F
    Codeforces909D Colorful Points(缩点)
    LOD
    Instruments
    IO优化
    Unity JobSystem
    Android 设备指纹
    帧同步
    寻路
  • 原文地址:https://www.cnblogs.com/F4NNIU/p/10032489.html
Copyright © 2011-2022 走看看