【问题标题】:Form to add data to MySQL table将数据添加到 MySQL 表的表单
【发布时间】:2011-08-02 16:00:04
【问题描述】:

我正在使用:

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

【问题讨论】:

  • $results = mysql_query($sql); if ($results) { echo "添加细节。"; }
  • _POST 值是否真的包含任何数据?
  • 您能帮我张贴您的 html 表单吗?您是否执行了 var_dump($_POST) 以确保值按预期到达页面?
  • 表单已被编辑。

标签: php mysql forms post


【解决方案1】:

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

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

您的&lt;input /&gt; 元素的名称属性也应该正确设置。 如果这一切都完成了,您应该能够在process.php 页面中获得$_POST 变量。因此:

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

通过简单的echo $fname; 检查您的变量是否有值。如果设置了它们,则系统失败的一个可能原因可能是您的 SQL 查询。省略 id 并执行以下操作:

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

【讨论】:

    【解决方案2】:

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

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

    你会看到变量的数据。

    【讨论】:

    • echo $fname = stripslashes($_POST['fname']); 不打印任何内容(作为变量赋值的状态)
    【解决方案3】:

    我猜想,这是一件小事,比如没有为您的字段设置“名称”值。如果您没有设置“名称”,则帖子数据将不包含任何详细信息。如果这不是问题,请发布您的代码,我可以看看是否有任何发现。

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-30
        • 1970-01-01
        • 1970-01-01
        • 2017-01-11
        • 2021-01-28
        相关资源
        最近更新 更多