2016-05-01 42 views
0

我仍然是網絡開發的初學者,我們被要求用登錄和數據庫做一個簡單的網站,但是我正面臨一個SQL查詢中的問題在登錄頁面,這裏是我的代碼:無效的參數編號:參數未定義第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的賠率,你們男孩呢?那,和/或'辨識的'是一個AI'd列。 –

+0

[PHP:「Notice:Undefined variable」和「Notice:Undefined index」]的可能重複(http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index) –

+1

因此,爲了避免所有猜測出你的問題,發佈你的HTML表單和數據庫架構。因爲現在就是這樣,「猜測」。你已經得到答案,所以看到這些。 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」它的工作! –

相關問題