我试图将值发布到数据库中,它在数据库中工作就像添加了一个新行,但不是值。首先,我把HTML放在这样:
<form action="config/testimonyAction.php">
<p> <input type="text" name="name" placeholder="name" /> </p>
<p> <input type="text" name="testimony" placeholder="testimony" /> </p>
<p> <input type="submit" value="SEND"> </p>
</form>
行动将转到testimonyAction.php。以下代码如下:
<?php
include ('dbconnect.php');
$name = $_POST['name'];
$testimony = $_POST['testimony'];
$sql = "INSERT INTO testimonial (name, testimonial) VALUES ('$name', '$testimony')";
if (mysqli_query($mysqli, $sql)) {
header('Location: http://www.test.com/');
exit;
}
else
{
echo "Error: " . $sql . "<br>" . mysqli_error($sql);
}
mysqli_close($mysqli);
?>
最后,它让我很困惑。它应该工作但我们输入的值不会出现在数据库中?有什么想法吗?
答案 0 :(得分:1)
表单的默认行为是将其作为GET请求提交。您应该将方法设置为POST以实现您想要的效果。
<form method="POST" action="config/testimonyAction.php">
<p> <input type="text" name="name" placeholder="name" /> </p>
<p> <input type="text" name="testimony" placeholder="testimony" /> </p>
<p> <input type="submit" value="SEND"> </p>
</form>
答案 1 :(得分:0)
我认为您需要指定表单的方法...
<form action="config/testimonyAction.php" method="POST">
如另一个答案所述,逃避变量也是一种很好的礼节。
$sql = "INSERT INTO testimonial (name, testimonial) VALUES ('".$name."', '".$testimony."')";