因此,我正在尝试使用POST方法从HTML中的表单中收集数据,并使用MySQLI函数将所述数据插入到MySQL数据库中。在独立PHP(无数据库连接(中,我能够成功发布和回声数据。
但是,一旦我打开了与数据库的连接并尝试使用插入语句,数据就会停止将所有内容发布在一起。我已经使用字符串测试了插入语句,它可以正常工作。
这是我的形式:
<form action="welcome" method="post">
First Name*<br>
<input type="text" name="userFN" required><br><br>
Last Name*<br>
<input type="text" name="userLN" required><br><br>
Email*<br>
<input type="email" name="userEmailAddress" required><br><br>
Password*<br>
<input type="password" name="userPassword" required><br><br>
Tell Us About Yourself<br>
<textarea rows="4" cols="50" name="userDescription">
</textarea>
<br>
<input type="submit">
</form>
这是我的PHP(欢迎使用,如上所述(。
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
//post form info into variables
$userFN = mysqli_real_escape_string($conn, $_POST['userFN']);
$userLN = mysqli_real_escape_string($conn, $_POST['userLN']);
$userEmailAddress = mysqli_real_escape_string($conn, $_POST['userEmailAddress']);
$userPassword = mysqli_real_escape_string($conn, $_POST['userPassword']);
$userDescription = mysqli_real_escape_string($conn, $_POST['userDescription']);
$sql = "INSERT INTO users (userFN, userLN, userEmailAddress, userPassword, userDescription) VALUES" . " ('" . $userFN . "','" . $userLN . "','" . $userEmailAddress . "','" . $userPassword . "','" . $userDescription . "');";
echo $sql;
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
it 总是返回New record created successfully
,并将新记录插入数据库中,但所有字段均为空白。当我回应插入语句时,我明白了:
INSERT INTO users (userFN, userLN, userEmailAddress, userPassword, userDescription) VALUES ('','','','','');
因此,显然不再获得我的帖子数据。我已经尝试使用准备好的语句,但仍然没有运气。我在这里做错了什么?我非常感谢所有建议,谢谢您。
答案可能会让您感到惊讶。
因此,问题实际上是在"动作"形式中。由于我的WebHosting提供商的配置方式,我实际上需要在操作中的文件夹名称之后指定/index.php/
。它实际上使服务器感到困惑,由于某种原因,它转化为"获取"而不是"帖子"。希望这会有所帮助。
感谢您的所有支持!