2016-05-01 30 views
0

私はまだウェブ開発の初心者ですが、ログインとデータベースを使用して簡単なWebサイトを作成するように求められました。パラメータ番号が正しくありません:パラメータが定義されていません..行9

<?php 
$data_src=new PDO("mysql:host=localhost;dbname=mini_projet",'root',''); 
$req = $data_src->prepare('INSERT INTO utilisateur values(:identifiant,:nom,:prénom,:email,:motdp)'); 
$req->execute(array(
'identifiant'=>$_POST['id'], 
'nom'=>$_POST['nom'], 
'prénom'=>$_POST['prenom'], 
'email'=>$_POST['email'], 
'motdp'=>$_POST['pwd'])); 
echo '<a href="forum.php">vous avez inscrit avec sucée cliquez ici</a>'; 
?> 

と私はページ内の看板の情報を提出した後、私はこのエラーを取得する:ページ内の記号は、ここに私のコードです

Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\wamp64\www\chat\inscri.php on line 9 

'motdp' => $ _ POST [ 'PWD ']はこの問題を引き起こしているようですが、何が間違っているのかわかりません。データベースとウェブページはどちらも問題ありません。

+0

私は(未知の)HTMLフォームに自分のお金を持っています。私は50から1オッズを取るでしょう、あなたは男の子はどうですか?それ、および/または 'identifiant'はAIの列です。 –

+0

[PHP: "通知:未定義変数"と "通知:未定義インデックス"](http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index)の可能な複製 –

+1

あなたの質問から推測を外すには、HTMLフォームとdbスキーマの両方を投稿してください。それが今のところ「推測」です。あなたは答えが与えられているので、それらを見てください。 TBH、私はそれを非常に疑っています。 –

答えて

0

挿入する列を一覧表示することをお勧めします。実際には、insert常に使用列リスト:

INSERT INTO utilisateur(identifiant, nom, prénom, email, motdp) 
    VALUES (:identifiant, :nom, :prénom, :email, :motdp); 

私は列の名前は、変数の名前と同じであることを推測しています。

+0

列の順序が正しい限り、列をリストしないでください。しかし、そうすることで将来の変更やデバッグが難しくなります。 –

+1

@AzizSaleh。 。 。それは避けなければならない悪い習慣です。 –

+0

私はそれをXDで解決しました。問題はprénomの "é"でした。データベースで名前を変更してquerryを単純に "prenom"に変更しました。 –

関連する問題