我使用以下表格
<section id="formSection">
<form id="dataForm" action="addUser.php" method="post">
<div>
<h2>Add Product:</h2>
<lable>First Name:</lable>
<input class="inputForm" id="inputFirstName" type="text" name="firstname">
</div>
<div>
<lable>Last Name:</lable>
<input class="inputForm" id="inputLastName" type="text" name="lastname">
</div>
<div>
<lable>Address: </lable>
<input class="inputForm" id="inputAdress" type="text" name="address">
</div>
<div>
<lable>Post Code:</lable>
<input class="inputForm" id="inputPostcode" type="text" name="postcode">
</div>
<div>
<lable>Delievery Type:</lable>
<input class="inputForm" id="inputDelievery" type="text" name="delievery">
</div>
<input type="submit">
</form>
</section>
以及以下php代码,用于将表单中的条目添加到数据库中。
$FirstName = $_POST[firstname];
$LastName = $_POST[lastname];
$address = $_POST[address];
$postcode = $_POST[postcode];
$delivery = $_POST[delievery];
$sql = "INSERT INTO USERS (FIRSTNAME, SECONDNAME, ADDRESS, POSTCODE, DELIVERY_TYPE)
VALUES ('$FirstName', '$LastName', '$address', '$postcode', '$delivery')";
$conn->exec($sql);
然而它无法正常工作,并且在过去2小时内盯着屏幕试图修复它。
答案 0 :(得分:1)
所有的POST数组都缺少引号:
$FirstName = $_POST[firstname];
应为
$FirstName = $_POST['firstname'];
并为其他人做同样的事。
另外,由于您似乎正在使用PDO,请使用预准备语句。
您可以SQL injection开放。
错误报告会发现解析错误。
将error reporting添加到文件的顶部,这有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:错误报告应仅在暂存时完成,而不是生产。
我还建议您使用表单元素的条件empty()
来检查是否有空字段。
否则,您可能会收到MySQL的通知,具体取决于您的表的设置方式。
即:
if(!empty($_POST['firstname'])){
$FirstName = $_POST['firstname'];
}
为了所有人:
if(
!empty($_POST['firstname']) &&
!empty($_POST['lastname']) &&
!empty($_POST['address']) &&
!empty($_POST['postcode']) &&
!empty($_POST['delievery'])
)
{
$FirstName = $_POST['firstname'];
$LastName = $_POST['lastname'];
$address = $_POST['address'];
$postcode = $_POST['postcode'];
$delivery = $_POST['delievery'];
}