gpt4 book ai didi

php - 更新当前用户信息 PHP PDO 时出现问题

转载 作者:可可西里 更新时间:2023-11-01 08:26:00 26 4
gpt4 key购买 nike

我目前正在开发用户配置文件系统...我卡在了用户更新其信息的阶段。我正在检查用户新选择的电子邮件地址是否已存在于数据库中。目前我正在将他们当前的电子邮件地址回显到表单中的输入值中。

收到的验证错误会阻止用户更新他们的其他信息,如果他们的电子邮件与数据库中已有的相同的话....任何指导将不胜感激。谢谢

$signedin = $_SESSION['username'];

function userExists($db, $email)
{
$userQuery = "SELECT * FROM members WHERE email = '$email' and email != '$signedin'";
$stmt = $db->prepare($userQuery);
$stmt->execute(array(':email' => $email));
return !!$stmt->fetch(PDO::FETCH_ASSOC);
}



$email = $_POST['email'];
$exists = userExists($db, $email);
if($exists)
{
header("Location: memberAccount.php?action=email_In_Use");
}
else
{
//submit form data

最佳答案

我从哪里开始?

  1. 您将变量直接放入查询中
  2. 你不使用标记
  3. 虽然是 2,但您正在尝试将一个值绑定(bind)到一个标记

看来您不了解 PDO 是什么。

适合你的代码是这样的:

$userQuery = "SELECT * FROM members WHERE email = :email and email != :signedin";
$stmt = $db->prepare($userQuery);
$stmt->execute(array(':email' => $email, ':signedin' => $signedin));

它也让我不明白为什么你在返回时使用 !!:

return !!$stmt->fetch(PDO::FETCH_ASSOC);

应该只是

return $stmt->fetch(PDO::FETCH_ASSOC);

我也建议阅读How Prepared Statements Work

关于php - 更新当前用户信息 PHP PDO 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35681815/

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