所以我尝试使用POST方法从HTMl中的表单收集数据,并使用MySQLi函数将所述数据插入MySQL数据库。在独立的PHP(没有数据库连接)时,我能够成功地将数据POST并回显到第二个文档。
但是,一旦我打开与数据库的连接并尝试使用insert语句,数据就会停止一起POST。我已经使用字符串测试了insert语句,它运行得很好。
这是我的表格:
<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;
}
始终返回New record created successfully
,并在数据库中插入新记录,但所有字段均为空白。当我回应插入语句时,我得到了这个:
INSERT INTO users (userFN, userLN, userEmailAddress, userPassword, userDescription) VALUES ('','','','','');
所以它显然不再获取我的POST数据了。我尝试过使用准备好的陈述但仍然没有运气。我在这做错了什么?我非常感谢任何建议,谢谢你。
答案 0 :(得分:0)
答案可能让你感到惊讶。
所以问题实际上是“行动”的形式。由于我的虚拟主机提供程序的配置方式,我实际上需要在操作中的文件夹名称后指定/index.php/
。它实际上混淆了服务器,并且由于某种原因被翻译为'GET'而不是'POST'。希望这会有所帮助。
感谢您的支持!