2015-09-27 80 views
-1

我非常新的PHP和MySQL。我想創建一個PHP形式 數據將被存儲在插入HTML表格數據MySQL數據庫

我已經創建了兩個PHP文件

後端Mysql數據庫
  1. form.php的
  2. insert.php

而且這兩個文件有一個require_once(DB_Login.php)函數 連接s到MySQL數據庫

form.php的的內容---

<html> 
    <head> 
     <body> 
      <form action="insert.php" 
        method="POST"> 
      <?php 
       require_once('DB_Login.php'); 
       $sql=mysql_query("Select * from Department"); 
       echo '<table border=1px>'; 
       echo '<th>DepartmentId</th> <th>Department_Name</th><th> 
       Description</th>'; 
       $datas=array(); 
       while($data=mysql_fetch_array($sql)) 
       { 
        $datas[]=$data; 
        //Running a loop all contents in the Mysql Table 
        echo '<tr>'; 
        echo '<td>.$datas[\'Dept_Id\'] </td> <td>.$datas[\'Dname\']</td> 
        <td>.$datas[\'Description\']</td>'; 
        echo '</tr>'; 
       } 
       echo'<tr>'; 
       echo'<td><input type=\"text\" name=\"Dept_Id\" id=\"Dept_Id\"></td><td> 
       <input type=\"text\" name=\"Dname\" id=\"Dname\"></td> <td><input 
       type=\"text\" name=\"Description\" id=\"Description\"></td>'; 
       echo'</tr>'; 
       echo '</table>'; 
       echo'<input type="submit" value="SEND">'; 
      ?> 
      </form> 
     </body> 
    </head> 
</html> 

insert.php--

<?php 
    require_once('DB_Login.php'); 

    $Didtext = mysql_real_escape_string($_POST['Dept_Id']); 
    $Dnametext=mysql_real_escape_string($_POST['Dname']); 
    $Desctext=mysql_real_escape_string($_POST['Description']); 

    echo $Didtext; 
    echo $Dnametext; 

    $adddept="INSERT INTO Department('Dept_Id','Dname','Description') 

    values('$Didtext','$Dnametext','$Desctext')"; 
    $result = mysql_query($adddept); 
    if($result) 
    { 
     echo("<br>Input data is succeed"); 
    } 
    else 
    { 
     echo("<br>Input data failed"); 
    } 
?> 

問題思考的內容是值未被傳遞給insert.php

$Didtext = mysql_real_escape_string($_POST['Dept_Id']); 
$Dnametext=mysql_real_escape_string($_POST['Dname']); 
$Desctext=mysql_real_escape_string($_POST['Description']); 

我運行此代碼後,我收到消息輸入數據失敗。 我做了很多關於這個問題的搜索。 我正在使用ID屬性傳遞元素值insert.php

請幫忙!!!

+1

對於初學者來說,實際上並沒有在SQL語句中使用變量。你使用硬編碼的字符串,每次都使用相同的字符串。除此之外,這個失敗究竟如何? 「我收到信息」是什麼意思?什麼不起作用? – David

+0

在insert.php中,我處理了在Mysql中插入數據的失敗。 –

+0

您將不得不更加具體。瞭解我們無法爲您調試。請執行一些調試並準確解釋失敗的原因。 – David

回答

0

你不應該標註列名時使用撇號(')。刪除它們。

你的插入查詢應該是這樣的:

$adddept="INSERT INTO Department(Dept_Id, Dname, Description) 
          VALUES('$Didtext','$Dnametext','$Desctext')"; 

同時,確保從表格$_POST值與您輸入字段的name HTML標籤一樣。在您的案例的輸入字段上指定名稱標籤時,您不需要使用反斜槓(\),您正在使用'進行回顯,並且您正在使用"分配HTML標籤。

<input type="text" name="Dept_Id" id="Dept_Id"> 

並仔細檢查您在查詢中使用的表名和列名,因爲這些數據區分大小寫。

注:你不應該再使用deprecatedmysql_* API進行,而使用mysqli_*prepared statement

0

UPDATE:

更改form.php的代碼:

... 
... 
echo '<tr>'; 
echo '<td><input type="text" name="Dept_Id" id="Dept_Id"></td>'; 
echo '<td><input type="text" name="Dname" id="Dname"></td>'; 
echo '<td><input type="text" name="Description" id="Description"></td>'; 
echo '</tr>'; 
echo '</table>'; 

無需雙引號前寫" \"

您沒有傳遞存儲值的變量。做以下變化insert.php

$adddept="INSERT INTO Department('Dept_Id','Dname','Description') 
values('".$Didtext."','".$Dnametext."','".$Desctext."')"; 

注:如果Dept_Idint則無需前後可變$Didtext爲使用'

$adddept="INSERT INTO Department('Dept_Id','Dname','Description') 
values(".$Didtext.",'".$Dnametext."','".$Desctext."')"; 
+0

沒有。它顯示相同的錯誤。在insert.php我甚至echo $ Dnametext,但它不會打印從Form.php –

+0

@PratikKulkarni傳遞的值,現在嘗試更新答案。 – SHAZ