我使用一个简单的测试表来尝试调试此错误.
我试着写一个脚本,用户可以更新他们的用户信息,我搜索过但没有找到任何具体的帮助我.
我的测试代码如下:
<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
错误信息
PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number:
parameter was not defined
最佳答案 遗失:(冒号)
$stmnt->bindValue(':name', $uname);
$stmnt->bindValue(':userID', $userID);