表单输入POST不显示MySQL中的任何结果

时间:2018-08-04 14:13:22

标签: php mysql forms

我想将输入的用户电子邮件地址发布到我的数据库中,但是没有错误,也没有发布到我的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");
?>

数据库:

Database: databasename
Table:email
email varchar(50)

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

1 个答案:

答案 0 :(得分:1)

好的,我确定您还有其他错误,所以我建议您通读This,这将有助于您进行错误处理并使用mysqli连接到数据库。它还为您提供了有关将预编码信息插入数据库的指南。现在,进入 实际上是从您的页面中获取信息并将其插入,您可能希望通过这种方式$sql = "INSERT INTO email (email) VALUES ('".$_POST["email"]."')"

第一个“ email”正在查看您的表名,第二个是您实际上希望数据输入的列名,第三个是发布值“ email”。如果您通读了开始时链接的文档并应用了此原理,那么您应该会很好,而不是最安全或最浮躁的方式,但应该可以完成工作。还要更改$_REQUEST to $_POST

编辑:

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

应读为$result = mysqli_query($mysqli, $SQL);

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

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

由于您的代码可以进行SQL注入,因此也请使用预处理语句。