首页 > 解决方案 > 表单输入 POST 在 MySQL 中不显示任何结果

问题描述

我想在我的数据库中发布输入的用户电子邮件地址,但是没有错误,也没有任何内容发布到我的 MySQL 数据库中。

HTML

<form action="post.php" method="post">
<input id="email" name="email" type="email" class="hasHelp  validateEmpty   " required="required" value="" autocomplete="off" placeholder="E-Mail-Adresse" aria-describedby="emailErrorMessage">
<button class="button actionContinue scTrack:unifiedlogin-login-submit" type="submit" id="submit" name="submit" value="submit" pa-marked="1">Next</button></form>

POST.php

<?php
    include('db_connect.php');
    if(isset($_REQUEST['submit']))
    {
        $SQL = "INSERT INTO email (email) VALUES ($email)";

        $result = mysql_query($SQL);
    }
?>

db_connect.php

<?php
    $mysqli = new mysqli("localhost", "username", "passwort", "database");
?>

D B:

Database: databasename
Table:email
email varchar(50)

为什么它不向我的数据库发布任何结果?

标签: phpmysqlforms

解决方案


好的,我确定您还有其他错误,所以我建议您通读这本书,这应该可以帮助您处理错误并使用 mysqli 连接到您的数据库。它还为您提供了将预编码信息插入数据库的指导。现在,开始实际从页面中获取信息并将其插入,您可能希望这样做$sql = "INSERT INTO email (email) VALUES ('".$_POST["email"]."')"

第一个“电子邮件”查看您的表名,第二个是您实际希望数据输入的列名,第三个是发布的值“电子邮件”。如果您通读一开始链接的文档并应用此原则,您应该一切顺利,不是最安全或最华丽的方式,但应该可以完成工作。也改变$_REQUEST to $_POST

编辑:

这部分代码$result = mysql_query($SQL);

应该读作$result = mysqli_query($mysqli, $SQL);.

您不能混合使用不同的 MySQL API。

然后mysqli_error($mysqli);应该用于检查查询上的错误,并启用错误报告。

也使用准备好的语句,因为您的代码对 SQL 注入是开放的。


推荐阅读