【问题标题】:Inserting Form Data into SQL table将表单数据插入 SQL 表
【发布时间】: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 结构看起来也很奇怪,可能是一个糟糕的设计。可以分享一下架构吗?
  • 您不能在&lt;div&gt; 中启动表单,并且在&lt;/div&gt; 之后有其他输入。 HTML 元素必须正确嵌套。
  • action 属性不应指向包含脚本。它应该指向执行INSERT的脚本,并且该脚本应该以require 'dbh.inc.php';开始

标签: php mysql database forms


【解决方案1】:

我刚刚稍微编辑了你的 sql。试试看

      $sql = "INSERT INTO user_contacts (name7, email7, phone7, message7) VALUES ('". 
      $name7. "','" . $email7 .  "','". $phone7 ."','". $message ."')"; 

【讨论】:

  • 为什么这会有所作为?它更简单,但没有什么不同。
  • 我认为,原版中可能存在一些转义问题
  • 此代码仍然存在所有转义问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-27
  • 2013-12-02
  • 2010-12-17
相关资源
最近更新 更多