【发布时间】:2019-03-25 11:50:26
【问题描述】:
每当我在我的网站中填写表单并按下提交按钮时,它不会将数据从这里推送到我创建的 wampserver/phpmyadmin 数据库中?
这是我第一次这样做,我认为它几乎可以正常工作,因为它在运行时没有给我任何错误。但我无法指出我哪里出错了,我猜它很容易被我忽略
这是php代码:
<?php
function renderform($firstname, $lastname, $emailaddress, $contactnumber, $query, $error)
{
?><?php
// connect to the database
include('connect.php');
// check if the form has been submitted. If it has, start to process the form and save it to the database
if (isset($_POST['Submit'])) {
// get form data, making sure it is valid
$firstname = mysqli_real_escape_string($connection, htmlspecialchars($_POST['FirstName']));
$lastname = mysqli_real_escape_string($connection, htmlspecialchars($_POST['LastName']));
$emailaddress = mysqli_real_escape_string($connection, htmlspecialchars($_POST['EmailAddress']));
$contactnumber = mysqli_real_escape_string($connection, htmlspecialchars($_POST['ContactNumber']));
$query = mysqli_real_escape_string($connection, htmlspecialchars($_POST['Query']));
// check to make sure both fields are entered
if ($firstname == '' || $lastname == '' || $emailaddress == '' || $contactnumber == '' || $query == '') {
// generate error message
$error = 'ERROR: Please fill in all required fields!';
// if either field is blank, display the form again
renderform($firstname, $lastname, $emailaddress, $contactnumber, $query, $error);
} else {
// save the data to the database
$query = ("INSERT INTO contact SET FirstName='$firstname', LastName='$lastname', EmailAddress='$emailaddress', ContactNumber='$contactnumber', Query='$query' ");
$data = mysqli_query($connection, $query) or die(mysqli_error($connection));
// once saved, redirect back to the view page
header("Location: contact.php");
}
} else {// if the form hasn't been submitted, display the form
renderForm('', '', '', '', '', '');
}
}
?>
收集的结果应该显示到 wampserver/phpmyadmin 数据库中,我最终会将其放入云主机中..
【问题讨论】:
-
SET是否适用于INSERT INTO语句?如果不尝试INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); -
你有各种各样的
if语句,你如何确认逻辑遵循你期望的路径?如果您可以使用理想的调试器,但如果失败,一种简单的方法是在代码中添加各种echo语句以指示逻辑的整体流程。据我们所知,if (isset($_POST['Submit']))可能是false,并且代码按设计工作。 -
是的,@Frankich。 dev.mysql.com/doc/refman/8.0/en/insert.html
-
您真的有带有
Submit名称属性的按钮还是带有小写字母的submit? -
感谢您的回复,@David 我明天会尝试您的建议。