2017-02-06 4 views
4

Я использую простую тестовую форму, чтобы попытаться отладить эту ошибку.Недопустимый номер параметра: параметр не определен Explination

Я пытаюсь написать сценарий, в котором пользователи могут обновлять свою пользовательскую информацию, я искал SO, но не нашел ничего конкретного, чтобы помочь мне.

Мой тестовый код выглядит следующим образом:

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

вы можете сбросить '$ _SESSION', когда вам отправьте форму. –

ответ

2

недостающую : (двоеточие)

$stmnt->bindValue(':name', $uname); 
    $stmnt->bindValue(':userID', $userID); 
+0

DAMN 3-часовая причина отсутствия двоеточия. Большое спасибо – gekkogurru

+0

@gekkogurru иногда бывает ... спасибо – scaisEdge

Смежные вопросы