【问题标题】:Cannot insert form data into a MySQL database using PHP无法使用 PHP 将表单数据插入 MySQL 数据库
【发布时间】:2016-08-04 11:40:37
【问题描述】:

我正在尝试将表单中提交的数据插入到 MySQL 数据库中,但在我的代码中看不到问题(除了 MySQL 注入,我将在实际能够插入任何数据后解决该问题)。我在 Stack Overflow 中进行了搜索,发现有人可能使用相同的手册,但我在 localhost 中工作,他在 GoDaddy 上。 The solution given there 不适合我。

这是我的 HTML 代码和 PHP 代码:

<?php 
  require'connection/connect.php';
  ?>
  <?php
  if(isset($_POST['Register'])){
      session_start();
      $Fname = $_POST['FirstName'];
      $Lname = $_POST['LastName'];
      $Email = $_POST['Email'];
      $pw = $_POST['Password'];


  $sql= $con->query("INSERT INTO user (Fname,Lname,Email,Password) values('{$Fname}', '{$Lname}', '{$Email}', '{$pw}')");
  }

  ?>
  <!DOCTYPE html >
  <html>
  <head>
  <link href="css/Master.css" rel="stylesheet" type="text/css" />
  <link href="css/Menu.css" rel="stylesheet" type="text/css" />
  <title>Register</title>
  </head>

  <body>


  <div class="container">
    <div class="header">

    </div>
    <div class="menu">
      <div id="NavBar">
       <nav>
       <ul>
       <li>
       <a href="Login.php">Login</a>
       </li>
       <li>
       <a href="Register.php">Register</a>
       </li>
       </ul>
       </nav>
  </div>

    </div>
    <div class="leftBody"></div>
    <div class="rightBody">
      <form  action="" method="post" name="RegisterForm" id="RegisterForm">
      <div class="FormElement">
      <input name="FirstName" id="FirstName" type="text" placeholder="First Name" class="TField">
      </div><br>
       <div class="FormElement">
      <input name="LastName" id="LastName" type="text" placeholder="Last Name" class="TField">
      </div><br>
       <div class="FormElement">
      <input name="Email" id="Email" type="email" placeholder="E-Mail" class="TField">
      </div><br>
       <div class="FormElement">
      <input name="Password" id="Password" type="password" placeholder="Password" class="TField">
      </div><br>
      <input name="Register" id="Register" type="button" value="Register" class="regButton">
      </form>

    </div>
    <div class="footer"></div>


  </div>

  </body>
  </html>

这是我的 connection.php 文件: 它确实表明它已连接。

<?php
$host="localhost";
$username="root";
$password="";
$dataBase="users";
$con=mysqli_connect($host,$username,$password,$dataBase);
if (!$con) {
    die("Could not connect: " . mysqli_error());
}
echo "Connected successfully";
?>

还有一张我在 phpMyAdmin 中的数据库图片: Database

出于某种原因,我也尝试过像这样使用这条线,但无济于事。:

$sql= $con->query("INSERT INTO user
                          (Fname,Lname,Email,Password)   
                   values ('Fname', 'Lname', 'Email', 'pw')");

【问题讨论】:

  • ('Fname', 'Lname', 'Email', 'pw') 您正在尝试将这些值作为字符串而不是 POST 数组/变量输入。猜猜你在这里错过了什么?线索:想想“钱”;-)
  • 通过 PHP 和 MySQL 检查错误;你没有这样做。
  • @GordonM 不好的做法是的,但它们可以一起工作。
  • “找到了一个可能使用相同手册的人,但我在 localhost 中工作,他在 GoDaddy 上” - 这闻起来就像您以 file:///file.xxx 访问而不是比http://localhost/file.xxx.
  • @GrowingDev 好的,我看到了您的提交按钮,应该是 submit 类型,而不是 button,Sanjiv Dhakal 的回答对此有所了解,但我忽略了它。那应该可以。

标签: php mysql database forms


【解决方案1】:

我没有看到实际提交表单的提交按钮。所以如果我没有错,请尝试使用

<input name="Register" id="Register" type="submit" value="Register" class="regButton">

【讨论】:

【解决方案2】:

你的代码应该运行

$sql= $con->query("INSERT INTO user 
                           (Fname,Lname,Email,Password)   
                     VALUES('$Fname', '$Lname', '$Email', '$pw')");

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多