2013-10-07 58 views
0

我已經在HTML中創建了一個表單,並將操作設置爲一個php腳本。我很新的PHP,並想知道如果有人可以幫助我與它?我需要編寫一個腳本來將表單中的信息添加到數據庫中。我需要創建數據庫和表。我在網上做了很多閱讀,但我仍然無法做到。這是我的腳本。請告訴我我犯了什麼錯誤。感謝您的幫助。使用php腳本連接到數據庫

<?php 

    $con=mysql_connect("example.com","peter","abc123","my_db"); 

    $sql="CREATE DATABASE user"; 

    if (mysql_query($con,$sql)) { 
     echo "Database user created successfully"; 
    } 

    $sql="CREATE TABLE Persons(PID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(PID),firstName CHAR(30),lastName CHAR(30),age INT, dateofbirth DATE, email CHAR(30)"; 

    if (mysql_query($con,$sql)) { 
     echo "connected to database"; 
    } 

    $sql="INSERT INTO Persons (firstName, lastName, age, dateofbirth, email) VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[age]','$_POST[dateofbirth]','$_POST[email]')"; 

    if (mysql_query($con,$sql)) { 
     echo "added to database"; 
    } 

    mysql_close($con); 

?> 

我嘗試了所有建議的答案,仍然無法做到這一點。有人可以提供代碼來做到這一點嗎?我需要從表單中獲取數據並使用php將其插入到數據庫中!

+0

u得到任何錯誤?嘗試使用'mysql_error()' –

+4

使用'mysql'是你所犯的第一個錯誤。如果你剛開始,我建議你學習MySQLi或PDO。 –

+1

嘗試'$ _POST ['firstname']' – user2092317

回答

0

嗨嘗試這個代碼,

$con=mysql_connect("example.com","peter","abc123"); 

    $sql="CREATE DATABASE user"; 

    if (mysql_query($sql)) 
    { 
     echo "Database user created successfully"; 
    } 
0

1 .-不要使用mysql_ 功能,因爲已被棄用,使用mysqli_功能或代替PDO。

2.-我猜你有幾個錯誤,首先你在連接腳本上選擇了一個數據庫my_db,但是你在下一行創建了另一個數據庫......這種行爲很奇怪。如果此腳本執行每一次,那麼你應該改變你的代碼(您不能創建一個數據庫和表每次

在你與職位代碼中的錯誤插入的字符串,試試這個:

$sql="INSERT INTO Persons (firstName, lastName, age, dateofbirth, email) VALUES ('{$_POST['firstname']}','{$_POST['lastname']}','{$_POST['age']}','{$_POST['dateofbirth']}','{$_POST['email']}')"; 
+0

什麼這個變量有錯嗎? –

+0

哦,是的!我沒有想到這一點。所以我需要創建一個數據庫並根據表單中的用戶提供的詳細信息添加值,而不是每次都創建一個數據庫!那麼這個代碼的工作原理? – user2830418

+0

是的,你不需要每次創建一個數據庫,只需要在表格'Person'中插入數據。這個插入應該可以工作(你放置變量的方式有問題)。因此,刪除創建數據庫並創建表(您在創建表腳本中有一個語法錯誤)並更改插入與我的,所有應該工作。並請使用'mysqli'或'pdo'功能 – Sal00m

0

CREATE TABLE查詢將失敗,因爲語法錯誤的。你必須檢查查詢的結果尤其是當一個查詢依賴於以前的(和你正在做的操作,如創建數據庫/表)。

接下來的事情改變的是mysql_* 。這個功能已被棄用,而應該使用PDOmysqli_*(他們不難學,只是嘗試)。

還有一個更重要的改變必須在腳本中完成。您獲取用戶輸入並將其添加到查詢中。不要這樣做!您必須始終假定用戶正試圖破解您,所以所有輸入的數據都必須進行檢查和過濾。用這些數據也可以使用prepared statements

0
if (mysql_query($con,$sql)){ 
      echo "Database user created successfully"; 
     } else { 
      echo 'Error creating database - ' . mysql_error(); 
    } 

您的所有SQL語句同樣的事情,看看你在哪裏錯了

0

更改代碼(mysql_query($sql))而不是(mysql_query($con,$sql))

+0

我仍然無法正確地得到它。有人可以發佈PHP腳本的代碼來接受表單中的數據元素並將其插入數據庫? – user2830418