【发布时间】:2018-08-30 01:28:41
【问题描述】:
我已经尝试解决这个问题好几个小时了,似乎有多种方法可以做到这一点,但由于某种原因,我似乎无法让它正常工作。出于某种原因,我的表正在更新,我只看到带有新的自动增量整数的新行,但其余列留空。该表格还有更多内容,但我将其保留以使其尽可能短。感谢您的帮助!
文件:dbh.inc.php
$dbServername = "localhost";
$dbUsername = "username";
$dbPassword = "password";
$dnName = "database_name";
$conn = mysqli_connect($dbServername, $dbUsername,
$dbPassword, $dnName);
if(!$conn)
// creation of the connection object failed
die("connection object not created: ".mysqli_error($conn));
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
文件格式:
$name7 = $_POST['name7'];
$email7 = $_POST['email7'];
$phone7 = $_POST['phone7'];
$message7 = $_POST['message7'];
$sql = "INSERT INTO user_contacts (name7, email7, phone7, message7) VALUES ('".$_POST["name7"]."','".$_POST["email7"]."','".$_POST["phone7"]."','".$_POST["message7"]."')";
mysqli_query($conn, $sql);
?>
<div class="form-group">
<form action="dbh.inc.php" method="POST">
<input type="text" class="form-control" name="name7" id="name7" placeholder="<?php esc_html_e('Name:','listingpro'); ?>">
<span id="name7"></span>
</div>
<div class="form-group form-group-icon">
<i class="fa fa-envelope" aria-hidden="true"></i>
<input type="email" class="form-control" name="email7" id="email7" placeholder="<?php esc_html_e('Email:','listingpro'); ?>">
</div>
<div class="form-group">
<input type="text" class="form-control" name="phone7" id="phone7" placeholder="<?php esc_html_e('Phone','listingpro'); ?>">
<span id="phone7"></span>
</div>
<div class="form-group">
<textarea class="form-control" rows="5" name="message7" id="message7" placeholder="<?php esc_html_e('Message:','listingpro'); ?>"></textarea>
</div>
【问题讨论】:
-
您是否真的关闭了表单?提交也丢失了。
-
我会先使用
mysqli_error($conn)并启用错误报告。 -
insert对 SQL 注入开放。我认为您应该删除my table is being updated,新行不是update,而是insert。 DB 结构看起来也很奇怪,可能是一个糟糕的设计。可以分享一下架构吗? -
您不能在
<div>中启动表单,并且在</div>之后有其他输入。 HTML 元素必须正确嵌套。 -
action属性不应指向包含脚本。它应该指向执行INSERT的脚本,并且该脚本应该以require 'dbh.inc.php';开始