无法从网站表单填充 wampserver 数据库?
Posted
技术标签:
【中文标题】无法从网站表单填充 wampserver 数据库?【英文标题】:Cant populate wampserver database from website form? 【发布时间】: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 我明天会尝试您的建议。
【参考方案1】:
如果你的变量不为空,你可以使用参数传递值:
$query = $this->dbConnect->prepare("INSERT INTO contact SET FirstName=?, LastName=?, EmailAddress=?, ContactNumber=?");
$query->bind_param('ssss', $firstname, $lastname, $email, $contact_no);
$query->execute();
确保您可以回显您的变量以确保您的表单正在提交值。
【讨论】:
- >
(带空格)会引发语法错误。我正在编辑您的答案以更好地格式化它。
之前尝试过,但无法正常工作,但明天再试一次以上是关于无法从网站表单填充 wampserver 数据库?的主要内容,如果未能解决你的问题,请参考以下文章