从Materialise表单添加到MySQL

问题描述 投票:0回答:1

在有人说这是重复之前,我已经检查并尝试过this先前提出的问题的解决方案。我相信我的问题是不同的,因为我没有单独的php文件 - 它在我的HTML中用标签编码(所以一切都在同一个文档中)。

这是我的PHP(数据库信息留空):

<?php

session_start();
    $dbhost = '****';
    $dbuser = '****';
    $dbpass = '****';
    $dbname = '****';

$connection = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);


$email=$_POST['email'];

$query="INSERT INTO tableName(email)
VALUES('$email')";

mysqli_free_result($result);

mysqli_close($connection);

?>

这是我的Materialise / HTML表单:

<form action="/thankyou.php" method="POST">
        <p class="input-header">Enter Your Email:</p>
        <input id="email" type="email" name= "email" class="validate" required>
        <br></br>
        <input class="waves-light btn indigo lighten-2" type="submit">
        <br></br>
        <br></br>
        <br></br>

</form>

为什么它不起作用的任何想法?我检查了我的MAMP phpmyadmin数据库,没有添加任何内容。如果您有任何建议,请告诉我!谢谢!

php html mysql forms materialize
1个回答
0
投票

这将对您有所帮助:因为您没有添加mysqli_query,因此它没有添加数据。在这里,我正在检查表单是否已提交,因为您提到它是单个文件。

<?php
// check if form is submitted
if(!empty($_POST['email'])) {
    $dbhost = '****';
    $dbuser = '****';
    $dbpass = '****';
    $dbname = '****';

    $connection = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
    // this line prevents sql injection
    $email = mysqli_real_escape_string($connection, $_POST['email']);

    $query="INSERT INTO tableName(email) VALUES('$email')";
    // this statement runs your query and actually adds data to mysql
    if (mysqli_query($connection, $query)) {
        echo "New record created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . mysqli_error($connection);
    }
    mysqli_close($connection);
}
?>
© www.soinside.com 2019 - 2024. All rights reserved.