1
我認爲這段代碼是正確的,但它不能正常工作。如何解決錯誤「SQLSTATE [HY093]:無效的參數號:綁定變量的數量與令牌的數量不匹配」?
我正在嘗試更新數據,但輸出錯誤。我認爲這個問題是綁定時看到的,我的猜測可能是錯誤的!
錯誤
SQLSTATE [HY093]:無效的參數編號:綁定變量的數量不符令牌
問題是什麼數?
class.user.php{
public function edit_user($uname,$umail,$upass,$uaddress,$uglevel,$ustate,$userpic){
try
{
$new_password = password_hash($upass, PASSWORD_DEFAULT);
$stmt_edit = $this->conn->prepare('UPDATE users SET
user_name=:uname,
user_email=:umail,
user_pass=:upass,
user_address=:uadddress,
user_grade_level=:uglevel,
ustate=:ustate,
user_photo=:upic
user_id=:user_id
WHERE user_id=:user_id');
$stmt_edit->bindparam(":uname", $uname);
$stmt_edit->bindparam(":umail", $umail);
$stmt_edit->bindparam(":upass", $new_password);
$stmt_edit->bindparam(":uaddress", $uaddress);
$stmt_edit->bindparam(":uglevel", $uglevel);
$stmt_edit->bindparam(":ustate", $ustate);
$stmt_edit->bindparam(":upic", $userpic);
if($stmt_edit->execute()){
?>
<script>
alert('Successfully Updated ...');
window.location.href='user_list.php';
</script>
<?php
}
return $stmt_edit;
}
catch(PDOException $e)
{
echo $e->getMessage();`enter code here`
}
}
}
//edit_user.php
if(isset($_POST['btn_save_updates']))`enter code here`
{
$uname = strip_tags($_POST['txt_uname']);
$umail = strip_tags($_POST['txt_umail']);
$upass = strip_tags($_POST['txt_upass']);
$uaddress = strip_tags($_POST['txt_uaddress']);
$uglevel = strip_tags($_POST['txt_uglevel']);
$ustate = strip_tags($_POST['txt_ustate']);
$imgFile = $_FILES['user_image']['name'];//image file
$tmp_dir = $_FILES['user_image']['tmp_name'];//directory
$imgSize = $_FILES['user_image']['size'];//image file size
if($imgFile)
{
$upload_dir = 'LMS_students/'; // upload directory
$imgExt = strtolower(pathinfo($imgFile,PATHINFO_EXTENSION)); // get image extension
$valid_extensions = array('jpeg', 'jpg', 'png', 'gif'); // valid extensions
$userpic = rand(1000,1000000).".".$imgExt;
if(in_array($imgExt, $valid_extensions))
{
if($imgSize < 5000000)
{
unlink($upload_dir.$edit_row['user_photo']);
move_uploaded_file($tmp_dir,$upload_dir.$userpic);
}
else
{
$errMSG = "Sorry, your file is too large it should be less then 5MB";
}
}
else
{
$errMSG = "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
}
}
else
{
// if no image selected the old image remain as it is.
$userpic = $edit_row['user_photo']; // old image from database
}
// if no error occured, continue ....
if(!isset($errMSG))
{
$user -> edit_user($uname,$umail,$upass,$uaddress,$uglevel,$ustate,$userpic);
}
else{
?>
<script>
alert('user couldnt be Updated');
window.location.href='user_list.php';
</script>
<?php
}
}
?>
'USER_ID =使用:user_id'我想這行一個問題..你通過user_id? –
像錯誤說你只是沒有相同數量的綁定參數,你會錯過:userid – MacBooc
你也不能重複使用佔位符,但是爲什麼你不想改變'user_id',不知道。 –