Php 仅当where子句与$\u会话相同时更新

Php 仅当where子句与$\u会话相同时更新,php,mysql,sql,sql-update,where,Php,Mysql,Sql,Sql Update,Where,我更新profile页面时遇到问题。我可以更新它,但它会更新所有记录,所以我认为我只会在用户名(Gebruikersnaam)与会话用户名($\u session['USER'])相同时更新 这是我尝试过的,但这对我不起作用 <?php if (isset($_POST["wijzig"])) { global $db; $Voorletters = htmlspecialchars($_POST["Voorletters"]); $Tussenvoegsel = htm

我更新profile页面时遇到问题。我可以更新它,但它会更新所有记录,所以我认为我只会在用户名(Gebruikersnaam)与会话用户名($\u session['USER'])相同时更新

这是我尝试过的,但这对我不起作用

<?php
if (isset($_POST["wijzig"])) {
   global $db;
   $Voorletters = htmlspecialchars($_POST["Voorletters"]);
   $Tussenvoegsel = htmlspecialchars($_POST["Tussenvoegsel"]);
   $Achternaam = htmlspecialchars($_POST["Achternaam"]);
   $Adres = htmlspecialchars($_POST["Adres"]);
   $Postcode = htmlspecialchars($_POST["Postcode"]);
   $Woonplaats = htmlspecialchars($_POST["Woonplaats"]);
   $Gebruikersnaam = $_SESSION['USER'];
    $sql1 = "UPDATE klant SET Voorletters=:voorletters, Tussenvoegsel=:tussenvoegsel, Achternaam=:achternaam, Adres=:adres, Postcode=:postcode, Woonplaats=:woonplaats
    WHERE Gebruikersnaam = $Gebruikersnaam";
    $stmt = $db->prepare($sql1);
    $data = array("voorletters" => $Voorletters, "tussenvoegsel" => $Tussenvoegsel, "achternaam" => $Achternaam, "adres" => $Adres, "postcode" => $Postcode, "woonplaats" => $Woonplaats);

    try {
        $stmt->execute($data);

    } 
    catch (PDOException $e) {
      echo $e->getMessage();
    }
} 
?>

我得到的错误是:

SQLSTATE[42S22]:未找到列:中的1054未知列“faas” “where子句”

这是我的第一个问题,所以如果我遗漏了一些信息或信息,请告诉我。希望你们能帮助我

"UPDATE klant SET Voorletters=:voorletters, Tussenvoegsel=:tussenvoegsel, Achternaam=:achternaam, Adres=:adres, Postcode=:postcode, Woonplaats=:woonplaats
    WHERE Gebruikersnaam = '$Gebruikersnaam'";

WHERE
子句中缺少引号。不过,您应该为此使用一个准备好的语句,因为您的代码对SQL注入是开放的。

您需要参数化所有数据!