gpt4 book ai didi

php - PDO 更新不更新数据

转载 作者:行者123 更新时间:2023-11-28 23:59:01 25 4
gpt4 key购买 nike

我知道像这样的答案已经写了无数次,但老实说,在花了大约 4 个小时之后,我似乎找不到问题所在。我的 PDO 更新没有更新。几天前它还在工作,也许我做了一些更改,但现在根本不起作用。

 try {
$query_update = $db->db_connection->prepare('UPDATE ghl_users SET user_last_reset_code = :user_password_reset_hash,
user_last_reset_request = :user_password_reset_timestamp
WHERE user_name = :user_name');
$query_update->bindValue(':user_password_reset_hash', $user_password_reset_hash, PDO::PARAM_STR);
$query_update->bindValue(':user_password_reset_timestamp', $temporary_timestamp, PDO::PARAM_STR);
$query_update->bindValue(':user_name', $user_name, PDO::PARAM_STR);
$query_update->execute();
}catch( PDOException $Exception ) {
throw new MyDatabaseException( $Exception->getMessage( ) , (int)$Exception->getCode( ) );
}

所有变量都已设置(例如,当我回显时它会显示值)

 echo $user_name. "<br />";
echo $temporary_timestamp. "<br />";
echo $user_password_reset_hash. "<br />";

值是:

johndoe
2015-06-04 09:28:29
8ctkas9f3ef35jdk2k5jaeffe115j3kkdc2ae

最佳答案

您只需要参数化不安全值,$user_password_reset_hash,即可停止注入(inject)。您可以使用 SQL NOW() 来更新

尝试

 try {
$query_update = $db->db_connection->prepare('UPDATE ghl_users
SET user_last_reset_code = :user_password_reset_hash,
user_last_reset_request = NOW()
WHERE user_name = :user_name');
$query_update->bindValue(':user_password_reset_hash', $user_password_reset_hash, PDO::PARAM_STR);
$query_update->bindValue(':user_name', $user_name, PDO::PARAM_STR);
if ($query_update->execute())
{
// success
echo "Updated record";
}
else
{
// failure

}



}catch( PDOException $Exception ) {
throw new MyDatabaseException( $Exception->getMessage( ) , (int)$Exception->getCode( ) );
}

还有确保设置了 ERRMODE_EXCEPTION

关于php - PDO 更新不更新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30640164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com