使用mysql在数据库中没有插入数据

问题描述:

我试图使用表单将数据输入到我的数据库中,但它根本不工作。所以我在表单中使用POST方法,我希望你们能够帮助我,并且这样我也可以学习,这样不会再发生!使用mysql在数据库中没有插入数据

我connect.php

<?php 
$con = mysqli_connect("localhost","root","hunzai112"); 
mysqli_select_db($con,"raty"); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
?> 

我register.php

<?php 
    include 'assets/connect.php'; 
    if(isset($_POST['submit'])){ 
     if(isset($_POST['fname']) && isset($_POST['lname']) && isset($_POSt['email']) && isset($_POST['password'])){ 
      $fname = $_POST['fname']; 
      $lname = $_POST['lname']; 
      $email = $_POST['email']; 
      $password = $_POST['password']; 
      $send = mysqli_query("INSERT INTO users (firstname,lastname,email,password) VALUES ('$fname','$lname','$email','$password')"); 

      if($send){ 
       echo "DONE"; 
      } 
      else { 
       echo "error"; 
      } 
     } 
    } 

?> 
<html> 
    <head> 
     <link href="https://fonts.googleapis.com/css?family=Oswald" rel="stylesheet"> 
     <link href="https://fonts.googleapis.com/css?family=Open+Sans+Condensed:300" rel="stylesheet"> 
     <link href="https://fonts.googleapis.com/css?family=Lobster+Two" rel="stylesheet"> 
     <link rel="stylesheet" type="text/css" href="style/index.min.css"> 
     <title>Register - RatyPeople</title> 
    </head> 
    <body> 
     <div class="regcontainer"> 
      <h1>RatyPeople</h1> 
      <form action="" method="POST"> 
       <input type="text" name="fname" placeholder="First Name"/><br> 
       <input type="text" name="lname" placeholder="Last Name"/><br> 
       <input type="email" name="email" placeholder="Email Address"/><br> 
       <input type="password" name="password" placeholder="Password"/><br> 
       <input type="submit" name="submit" value="Register"> 
      </form> 

     </div> 

    </body> 
</html> 

`

+0

这样做的一方面,'$ _POSt'不正确。这是一个超全球性的,它必须是大写字母。错误报告会引发你一些关于它的事情。 –

提供链路标识符是$con你的情况

$send = mysqli_query($con, "INSERT INTO users ... 

获取更详细from doc:http://php.net/manual/en/mysqli.query.php

+0

Didnt working :( –

+0

echo'$ send = mysqli_q ...'并运行在phpmyadmin并检查? – C2486

+0

仍然没有计算出 –

<?php 
    include 'assets/connect.php'; 
    if(isset($_POST['submit'])){ 
     if(isset($_POST['fname']) && isset($_POST['lname']) && isset($_POSt['email']) && isset($_POST['password'])){ 
      $fname = $_POST['fname']; 
      $lname = $_POST['lname']; 
      $email = $_POST['email']; 
      $password = $_POST['password']; 
      $query = "INSERT INTO users (firstname,lastname,email,password) VALUES ('$fname','$lname','$email','$password')" 
$send = mysqli_query($con,$query); 

      if($send){ 
       echo "DONE"; 
      } 
      else { 
       echo "error"; 
      } 
     } 
    } 

?> 

您没有为查询功能提供数据库连接。

+0

我did not understand –

+0

Didnt工作以及 –

+0

真的,添加此代码if($ send){ ec “完成”; } else { mysqli_error($ con); }至少向我们展示一些错误消息,这将有所帮助 –

您的问题是在第4行:

if(isset($_POST['fname']) && isset($_POST['lname']) && isset($_POSt['email']) && isset($_POST['password'])){ 

替换$ _ POST [ '电子邮件']与$ _POST [ '电子邮件']

如果问题存在,你可以替换:

$send = mysqli_query("INSERT INTO users (firstname,lastname,email,password) VALUES ('$fname','$lname','$email','$password')"); 

有:

并告诉我什么错误返回。

1)除仙人的反应,试试这个:

  • 变化isset($_POSt['email'])isset($_POST['email']),注意到 “T” 在那里。
  • 变化<form action="" method="POST"><form action="register.php" method="POST">

2)同样是为了安全,插入到你的数据库,防止SQL注入的原因之前逃脱你的POST变量:

  • 变化

    $fname = $_POST['fname']; 
        $lname = $_POST['lname']; 
        $email = $_POST['email']; 
        $password = $_POST['password'];` 
    

    $fname = mysqli_real_escape_string($con, $_POST['fname']); 
        $lname = mysqli_real_escape_string($con, $_POST['lname']); 
        $email = mysqli_real_escape_string($con, $_POST['email']); 
        $password = mysqli_real_escape_string($con, $_POST['password']); 
    

3)此外,这将帮助调试,

  • 变化

     if($send){ 
          echo "DONE"; 
         } 
         else { 
          echo "error"; 
         } 
    

     if($send){ 
          echo "DONE"; 
         } 
         else { 
          echo "Error: ". mysqli_error($con); 
         } 
    

    为了让你看看有没有是个MySQL错误。

  • 包括在register.php顶部下面的代码,<?php后,这将有助于调试问题(注释掉当您完成):

    error_reporting(E_ALL); ini_set('display_errors', '1');

4)完整的答案,仙人说:

提供链路标识符这是你的情况$ CON $发送= mysqli_query($ CON,“INSERT INTO使用rs ... 从doc获取更多详细信息:http://php.net/manual/en/mysqli.query.php