将 HTML Table 数据插入 Mysql 数据库
Insert HTML Table data to Mysql DB
我对 php 和 mysql 很陌生。我正在尝试创建一个 php 表单
哪些数据将存储在后端 Mysql 数据库
我创建了两个 php 个文件
- Form.php
- 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_Id
是int
则不需要在变量$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。
我对 php 和 mysql 很陌生。我正在尝试创建一个 php 表单 哪些数据将存储在后端 Mysql 数据库
我创建了两个 php 个文件
- Form.php
- 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_Id
是int
则不需要在变量$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。