将PHP表单发送到MySQL数据库
我是PHP新手,我真的很难将我的PHP联系人表单数据发布到我的数据库MySQL、MAMP、phpMyAdmin中,我不知道为什么我会发现这个问题如此复杂,我已经看了我的代码很多年了,但无法理解它 connection.php将PHP表单发送到MySQL数据库,php,mysql,Php,Mysql,我是PHP新手,我真的很难将我的PHP联系人表单数据发布到我的数据库MySQL、MAMP、phpMyAdmin中,我不知道为什么我会发现这个问题如此复杂,我已经看了我的代码很多年了,但无法理解它 connection.php <?php $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "FutureDesign"; // Create connection $conn = new my
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "FutureDesign";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
//if ($conn->connect_error) {
// die("Connection failed: " . $conn->connect_error);
//}
//echo "Connected successfully";
$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$message = $_POST['message'];
$sql = "INSERT INTO ContactForm (name, phone, email, message ) VALUES ('$name', '$phone', '$email', '$message')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
contact.php
<form name="sentMessage" id="contactForm" method="post" action="connection.php" novalidate>
<div class="control-group form-group">
<div class="controls">
<label>Full Name:</label>
<input type="text" class="form-control" name="name" id="name" required data-validation-required-message="Please enter your name.">
<p class="help-block"></p>
</div>
</div>
<div class="control-group form-group">
<div class="controls">
<label>Phone Number:</label>
<input type="tel" class="form-control" name="phone" id="phone" required data-validation-required-message="Please enter your phone number.">
</div>
</div>
<div class="control-group form-group">
<div class="controls">
<label>Email Address:</label>
<input type="email" class="form-control" name="email" id="email" required data-validation-required-message="Please enter your email address.">
</div>
</div>
<div class="control-group form-group">
<div class="controls">
<label>Message:</label>
<textarea rows="10" cols="100" class="form-control" name="message" id="message" required data-validation-required-message="Please enter your message" maxlength="999" style="resize:none"></textarea>
</div>
</div>
<div id="success"></div>
<!-- For success/fail messages -->
<button type="submit" value="submit" class="btn btn-primary" id="sendMessageButton">Send Message</button>
</form>
试着像这样用双引号包装参数
$sql = "INSERT INTO ContactForm (name, phone, email, message ) VALUES (".'$name'.", ".'$phone'.", ".'$email'.", ".'$message'.")";
我建议您将参数与绑定,以避免sql注入我已从表单的第一行中删除name=sentMessage id=contactForm,并且一切正常 有错误的原始行
<form name="sentMessage" id="contactForm" method="post" action="connection.php" novalidate>
删除编辑行错误
<form method="post" action="connection.php" novalidate>
作为对其他帖子的补充,尝试使用准备好的语句。这比使用mysqli函数更安全。学校是学习的好地方!他们有几篇关于这个问题的文章
祝你好运 警告:使用mysqli时,您应该使用和将用户数据添加到查询中。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。不要把$POST、$YET或任何用户数据直接放入查询中,如果有人试图利用你的错误,这将是非常有害的。考虑使用A来解决这样的问题。它们为您提供了将代码组织到适当的模型、视图和控制器上下文中所需遵循的模式,并避免了在HTML、PHP、SQL和JavaScript都混杂在一起的情况下出现令人困惑的问题。框架有很多种形式,从非常精简的like到功能非常全面的like,中间有很多点。请确保电话字段不包含非数字字符。我将尝试实现参数化查询和bind_param,将来因为我对php开发还是很陌生,非常感谢您的帮助,我也会考虑在未来使用一个框架谢谢你的帮助,我真的很感谢你的建议,我会尽快对我的数据库进行更改,关于INT,我也一定会研究参数化查询和绑定参数,再次感谢你。你帮了我很大的忙。我尝试过包装参数,但没有成功,谢谢你的建议。PHP字符串允许插值,所以通常切换到这种样式是用不同的语法做完全相同的事情。您在这里所做的是切换到文本“$name”作为插入值,这是一个巨大的倒退$x、 。。。将插入“…$x…”将不会。请非常小心。他们的很多内容已经过时了,可能会引导你养成非常危险的行为和坏习惯。官方PHP文档几乎总是高质量的,并且是最新的。w3schools只是为了点击。PHP的文档旨在提供教育。