Ich verwende ein einfaches Testformular, um diesen Fehler zu debuggen.Ungültige Parameternummer: Parameter wurde nicht definiert. Explination
Im Versuch, ein Skript zu schreiben, wo Benutzer ihre Benutzerinformationen aktualisieren können, habe ich SO gesucht, aber habe nichts Konkretes gefunden, um mir zu helfen.
Mein Testcode ist wie folgt:
HTML
<form name="info" method="post" enctype="multipart/form-data">
<input type="text" name="username" id="username">
<input type="submit" name="submitBtn">
</form>
PHP
if(isset($_POST['submitBtn'])){
//Display Errors
{{ PDO::ATTR_ERRMODE; }}
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$uname = $_POST['username']; //this displays correct after submit
$userID = $_SESSION['userID']//this prints correctly when user logged in, which he is
$sql="UPDATE USERS SET username =:name
WHERE userID =:uID";
$stmnt= $db->prepare($sql);
$stmnt->bindValue('name', $uname);
$stmnt->bindValue('userID', $userID);
$result = $stmnt->execute();
if($result){
?>
<h2>SUCCESS</h2>
<?php
}//end result
else{
?>
<h2>FAIL</h2>
<?php
}//else
}//isset
ERROR MESSAGE
PDOStatement :: execute(): SQLSTATE [HY093]: Ungültige Parameternummer: Parameter nicht
können Sie 'Dump _SESSION' $, wenn Sie Übermitteln Sie das Formular. –