2016-12-23 162 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');