2016-12-23 159 views
0

我在提交表单时出现了PHP代码,并且数据没有插入到数据库,我使用phpMyAdmin创建了我的数据库,我有HTML注册表单,该怎么办?html表单,PHP插入数据到数据库不工作?

这里我的PHP代码:

 <?php 
     $con=mysqli_connect('localhost','root',''); 
     $db=mysqli_select_db($con,'research_sys'); 
    if ($con) { 
     echo "good"; 
     }else { 
     die('error'); 
     } 
     if(isset($_POST['submit'])){ 
$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']); 
    $sql = mysqli_query($con,"INSERT INTO `research_sys`.`researcher` (Re_fname,Re_lname,Re_mobile,Re_password) values ('$Fname','$Lname','$email','$password ')"); 

      if (mysqli_query($sql)){ 
      echo "insert"; 
      } else { 
       echo "error" .$sql ."<br>". mysqli_error($con); 
       }   
} 
?> 

我这里登记的HTML代码

  <form method="post" action="connect.php"> 
       <legend class="center">Register </legend> 
       <br> 
       <div> 

        <input type="text" name="Fname" placeholder="First Name"/> 
       </div> 
       <div> 

        <input type="text" name="Lname" placeholder="Last Name"/> 
       </div> 

       <div> 
        <input type="text" name="email" placeholder="Email"/> 
       </div> 

       <div> 
        <input type="password" name="password" placeholder="Password"/> 
       </div> 

       <div> 
        <input type="password" name="con_password" placeholder="Password confirm"/> 
       </div> 
       <input type="submit" name="submit" value="submit"/> 
      </form> 

回答

1

请看下面:

$sql = mysqli_query($con,"INSERT INTO `research_sys`.`researcher` 
     ^^^^^^^^^^^^ function 

     (Re_fname,Re_lname,Re_mobile,Re_password) 
     values ('$Fname','$Lname','$email','$password ')"); 
                ^space 

    if (mysqli_query($sql)){ 
     ^^^^^^^^^^^^ function 

您正在使用的mysqli_query()函数两次,去除一个只是做:

if ($sql){...} 

mysqli_error($con)应该抛出一个关于它的错误。

如果它没有抛出错误,那么这可能表明您将此用作file:///而不是http://localhost

编辑:

“我有HTML登记表whin我提交的PHP代码apears形式为”

那是因为什么,我引用您之前写以上。你需要运行这个关闭php/mysql安装并运行正常的网络服务器,并作为http://localhost

此外,请删除此'$password '中的空格。这个空间被视为一个角色。

  • 还要仔细检查您的列名称。似乎有些东西与(Re_fname,Re_lname,Re_mobile,Re_password),Re_mobile不匹配,并且您在VALUES中引用了电子邮件'$email'

你似乎也存储纯文本密码; 不要,如果你打算继续这样做,这是不安全的。使用password_hash()和准备好的声明。


脚注:

$con=mysqli_connect('localhost','root',''); 
    $db=mysqli_select_db($con,'research_sys'); 

可以缩短,要使用所有4个参数,mysqli_connect()

$con=mysqli_connect('localhost','root', '', 'research_sys');