将 HTML Table 数据插入 Mysql 数据库

Insert HTML Table data to Mysql DB

我对 php 和 mysql 很陌生。我正在尝试创建一个 php 表单 哪些数据将存储在后端 Mysql 数据库

我创建了两个 php 个文件

  1. Form.php
  2. insert.php

这两个文件都有一个 require_once(DB_Login.php) 函数 连接到 Mysql DB

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

请帮忙!!!

更新:

将您的 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."')";

在标记列名称时不应使用撇号 (')。删除它们。

您的插入查询应如下所示:

$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">

并仔细检查您在查询中使用的 table 名称和列名称,因为这些数据区分大小写。

注意:您不应该使用 deprecated mysql_* API anymore and instead use mysqli_* prepared statement