2015-09-27 82 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