无法从网站表单填充 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();

确保您可以回显您的变量以确保您的表单正在提交值。

【讨论】:

- &gt;(带空格)会引发语法错误。我正在编辑您的答案以更好地格式化它。 之前尝试过,但无法正常工作,但明天再试一次

以上是关于无法从网站表单填充 wampserver 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

无法更改源代码的网站的自动填充功能

wampserver搭建的网站外网无法访问的问题

如何从“excel文件”登录并将值自动填充到“drupal表单”中?

自动填充 iframe 中的外部表单来自...另一个表单

从 2 个表填充数据库表单 (Access)

使用 ajax 和 jquery 从数据库中动态添加预先填充的表单