我使用一个简单的测试表来尝试调试此错误。
我试着编写一个用户可以更新用户信息的脚本,我搜索过但没有找到任何具体的帮助我。
我的测试代码如下:
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
错误消息
PDOStatement :: execute():SQLSTATE [HY093]:参数号无效: 参数未定义
答案 0 :(得分:2)
缺少:
(冒号)
$stmnt->bindValue(':name', $uname);
$stmnt->bindValue(':userID', $userID);