2015-03-13 75 views
0

我想用PHP寫入數據庫,它不工作,我不知道爲什麼。任何幫助將非常感謝!使用PHP創建數據庫記錄不工作

我已經有幾個人看着它沒有用,所以我希望多一些額外的眼睛可以幫助我找到什麼阻止它的工作。

<html> 
<head> 
<title> Test </title> 
</head> 
<body> 

<p> 
<?php 
$servername = 'localhost3306'; 
$username = 'root'; 
$password = 'root'; 
$dbname = 'database'; 


try { 
    $conn = new PDO('mysql:host=$servername;dbname=$dbname', $username, $password); 

    setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);d 
    $sql = "INSERT INTO resgisterdusers(Password, FirstName, LastName, Hometown1, State1, 
      Zip1, Hometown2, State2, Zip2, PhoneNum, Email, Car, GraduationMonth, 
      GraduationYear, AccountActivated, DateActivated, ActivationCode, RouteID1, RouteID2); 
    VALUES ('Password1', 'joe', 'sixpack', 'city', 'MT', '59595', '', '', '', '55555555555', 
      '[email protected]', '1', '05', '2012', '1', '2/28/2015', 'XXX', '', '2')"; 

    exec($sql); 
    echo "New record created successfully"; 

    } 
catch(PDOException $ec 
) 
    { 
    echo "Error!"; 
    getmessage(); 
     } 

$conn = null; 
?> 
</p> 
</body > 


</html> 
+3

不要使用PDO經常,但它不應該是'$ conn-> EXEC($ SQL);'? – Albzi 2015-03-13 14:39:28

+0

它是如何失敗?有錯誤嗎?意外的行爲?請描述問題。 – David 2015-03-13 14:39:49

+0

'exec($ sql);'沒有做你認爲的事情。 – TZHX 2015-03-13 14:40:25

回答

1

改變這一行:

exec($sql); 

這樣:

$conn->exec($sql); 

而且,它似乎setAttribute也是PDO的方法。

改變,要

$conn->setAttribute(...); 

PDO exec() method manual

PDO setAttribute() method manual

還有一個;在SQL字VALUES之前。

+0

另外''conn-> setAttribute(..'。這個行的結尾也有一個隨機數d – rjdown 2015-03-13 14:41:24

+0

謝謝@rjdown我已經更新了它:) – Albzi 2015-03-13 14:41:54

+0

我相信exec函數必須和準備好的聲明對嗎在這種情況下,它將是$ conn-> query()而不是$ conn-> exec() – Dallin 2015-03-13 14:47:03

2

不應該是

$conn->query($sql) 

但是,你應該使用預處理語句,如果是用戶輸入...

,需要這條線被改變

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);d 

將其更改爲

$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

編輯:不客氣,雖然我沒有完全解決你的問題。 d_unknown已經注意到查詢中的獎金分號。好眼睛,我完全錯過了,這個小屏幕並沒有幫助我。

+0

感謝您的反饋! :D – FlummoxedUser 2015-03-13 15:04:59

3

也許在你的SQL INSERT語句中的字VALUES之前分號..

+0

好的。你可能想指出其他問題的其他答案。 – jeroen 2015-03-13 14:46:12

+0

感謝您的反饋! :d – FlummoxedUser 2015-03-13 15:05:07