号码绑定变量的不匹配的令牌

号码绑定变量的不匹配的令牌

问题描述:

我创建了该怎么保存记录到数据库中一个PHP页面数,这是我写的代码:号码绑定变量的不匹配的令牌

try 
    { 
     $bdd = new PDO('mysql:host=localhost;dbname=tp_js_php','root',''); 
    } 
    catch(PDOException $e) 
    { 
     die($e->getMessage()); 
    } 

    //Selectionner la table de clients 
      $reponse = $bdd->query('Select * from client'); 
      $clients = $reponse->fetchAll(); 

try 
      { 
      $req = $bdd->prepare('INSERT INTO client(nomClient,PrenomClient,Adresse,Télephone,Email,Pseudo,MotDePasse) VALUES (:nom, :prenom, :adresse, :tel, :email, :pseudo, :mdp)'); 
      $req->execute(array(
        ':nom' => $_POST['nom'], 
        ':prenom', $_POST['prenom'], 
        ':adresse', $_POST['adresse'], 
        ':tel', $_POST['telephone'], 
        ':email', $_POST['email'], 
        ':pseudo', $_POST['pseudo'], 
        ':mdp', sha1($_POST['mdp']))); 
     } 
     catch(PDOException $e) 
     { 
      die($e->getMessage()); 
     } 

这是我得到的错误:

Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\xampp\htdocs\tp_fomulaire_js\insertion.php on line 21 

管线21是:':mdp', sha1($_POST['mdp'])));

余数以外的所有idClient是增量的无人是搞乱的参数应用。

+1

您有7个占位符,但您传递13个参数。阅读Yogesh的答案,如果你不能找到原因:) – 2013-02-26 11:46:53

使用此代码,您必须使用=>,但您使用的是,

$req->execute(array(
       ':nom' => $_POST['nom'], 
       ':prenom' => $_POST['prenom'], 
       ':adresse' => $_POST['adresse'], 
       ':tel' => $_POST['telephone'], 
       ':email' => $_POST['email'], 
       ':pseudo' => $_POST['pseudo'], 
       ':mdp' => sha1($_POST['mdp']))); 
+0

我已经做了你的更正,但我得到了这个新的错误:可捕捉的致命错误:类PDoCtatement的对象无法转换为C:\ xampp \ htdocs \ tp_fomulaire_js \第14行的插入.php – 2013-02-26 11:50:50

+0

@SuSha什么是行号。 14?显示它的代码。 – 2013-02-26 11:51:52

+0

这是一个语法错误我已经纠正它,但即使这些修改我无法找到数据库上的新记录 – 2013-02-26 11:54:24