表单将数据添加到MySQL表

时间:2011-08-02 16:00:04

标签: php mysql forms post

我正在使用:

*connection details*

$fname = stripslashes($_POST['fname']);
$surname = stripslashes($_POST['surname']);
$address = stripslashes($_POST['address']);

$sql = "INSERT INTO mytable (id, fname, surname, address)
VALUES ('', '$fname', '$surname', '$address')";
$results = mysql_query($sql);

if ($results)
{
echo "Details added.";
}

问题是表中是否添加了一个条目,但所有数据都是空白而不是表单中的内容?

形式:

<form id="myform" action="add.php" method="post" name="myform">
<label for="fname">First Name</label> 
<input id="fname" name="fname" ><br />
<label for="surname">Surname</label> 
<input id="surname" name="surname" ><br />
<label for="address">Address</label> 
<input id="address" name="address" >
<input type="submit" name="submitButtonName" value="Add">

4 个答案:

答案 0 :(得分:2)

您也应该发布HTML代码。确保表单的方法是POST为:

<form method="POST" action="process.php">
   <input type="text" name="fname" />
   <input type="text" name="surname" />
   <input type="text" name="address" />
</form>

还应正确设置<input />元素的名称属性。 如果全部完成,您应该能够在$_POST页面中获取process.php个变量。因此:

$fname = stripslashes($_POST['fname']);

通过执行简单的echo $fname;检查您的变量是否具有值。如果已设置,则系统失败的可能原因可能是您的SQL查询。省略 id ,然后执行:

$sql = "INSERT INTO mytable (firstname, surname, address)
        VALUES ('" . $fname . "', '" . $surname . "', '" . $address . "')";
$result = mysql_query($sql);

答案 1 :(得分:1)

您应该尝试打印此变量以进行调试。

echo $fname = stripslashes($_POST['fname']);
echo $surname = stripslashes($_POST['surname']);
echo $address = stripslashes($_POST['address']);

你会看到变量的数据。

答案 2 :(得分:0)

在猜测中,我会想象这是一个小的东西,比如没有为你的字段设置“名称”值。如果您没有设置“名称”,那么帖子数据将不包含任何细节。如果这不是问题,请发布您的代码,我可以看看我是否发现了任何问题。

答案 3 :(得分:0)

如果数据库表中的id字段是自动递增的,那么不需要将其放在mysql查询中,试试这个

    $sql = "INSERT INTO mytable (fname, surname, address)
            VALUES ('$fname', '$surname', '$address')";