在有人说这是重复之前,我已经检查并尝试过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数据库,没有添加任何内容。如果您有任何建议,请告诉我!谢谢!
这将对您有所帮助:因为您没有添加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);
}
?>