PHP PDO:更新查询不起作用且没有错误

ero*_*msr 6 php mysql pdo

我有一个非常简单的 UPDATE 查询,当我在 PHPMyAdmin 中执行它时它可以工作(所以它不是 SQL 语法错误)。但是,当我尝试使用 PHP PDO 执行查询时,没有显示任何错误,并且没有一行受到查询的影响。

我有错误报告设置是这样的:PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION。但没有显示错误。我的 PHP 代码如下所示:

try {
    $sql = "UPDATE user 
            SET username = :username, 
                activation_token = :activation_token, 
                activation_date_time = :activation_date_time, 
                activation_status  = :activation_status  
            WHERE activation_token = :current_activation_token";
    $stmt = $dbh->get_instance()->prepare($sql); 

    $stmt->bindParam(':username', $username, PDO::PARAM_STR);       
    $stmt->bindParam(':activation_token', $empty_activation_token, PDO::PARAM_STR);    
    $stmt->bindParam(':activation_date_time', $datetime, PDO::PARAM_STR);
    $stmt->bindParam(':activation_status', $active_status, PDO::PARAM_STR); 
    $stmt->bindParam(':current_activation_token', $activation_token, PDO::PARAM_STR);
    $stmt->execute();

    echo 'username: ' . $username;
} 
catch(PDOException $e) {
    echo $e;
} 
Run Code Online (Sandbox Code Playgroud)

我还检查了我是否以某种方式使用了保留关键字或类似的东西,但我很确定事实并非如此。为什么这不起作用?