2015-10-19 38 views
2

HTML代碼添加在2表中的數據如何在只有一種形式

<form method = "POST" action = "register.php"> 
    <div class = "register"> 
    <center> 
     <div class = "heading"></br> 
      <strong>--- REGISTER ---</strong></br></br> 
     </div> 
    </center> 

    <div class = "registration"> 

     First Name: <input type = "text" placeholder = "Enter First Name" name = "Cus_fname" style = "margin-left: 48px;" required></br></br> 
     Last Name: <input type = "text" placeholder = "Enter Last Name" name = "Cus_lname" style = "margin-left: 49px;" required></br></br> 
     Username: <input type = "text" placeholder = "Enter Username" name = "Cus_Uname" style = "margin-left: 55px;" required></br></br> 
     Password: <input type = "password" placeholder = "Enter Password" name = "Cus_Pword" style = "margin-left: 61px;" required></br></br> 
     Address: <input type = "text" placeholder = "Enter Address" name = "Cus_address" style = "margin-left: 67px;" required></br></br> 
     Contact No.: <input type = "text" placeholder = "Enter Contact Number" name = "Cus_contactnum" style = "margin-left: 38px;" required></br></br> 
     Email: <input type = "text" placeholder = "Enter E-mail Address" name = "Cus_email" style = "margin-left: 88px;" required></br></br> 

     <input type = "submit" name = "submit" value = "Submit" style = "margin-left: 110px;"></br> 

    </div></br> 
    </form> 

PHP代碼

<?php 
if(isset($_POST['submit'])){ 



    $cf = $_POST['Cus_fname']; 
    $cl = $_POST['Cus_lname']; 
    $cu = $_POST['Cus_Uname']; 
    $cp = $_POST['Cus_Pword']; 
    $ca = $_POST['Cus_address']; 
    $cn = $_POST['Cus_contactnum']; 
    $ce = $_POST['Cus_email']; 

    include("config.php"); 


    mysqli_query($con, "INSERT INTO account (Cus_ID, Cus_Uname, Cus_Pword) VALUES ('null', '$cu', '$cp')"); 
    mysqli_query($con, "INSERT INTO client (Cus_ID, Cus_lname, Cus_fname, Cus_address, Cus_contactnum, Cus_email) VALUES(null, '$cl', '$cf', '$ca', '$cn', '$ce')"); 

    mysqli_close($con); 
} 
?> 

的問題是,它只是在一個表中增加這是我的客戶表,並將其只1個數據添加到我的帳戶表中沒有比

林多使用MySQL工作臺爲我的數據庫

+0

首先,您的腳本容易受到SQL注入攻擊,請考慮使用轉義字符串或準備語句。此外,您沒有任何檢查或默認的條目。如果用戶沒有輸入內容或數據沒有發佈到正確的索引,會怎麼樣? – Twisty

回答

2

使用預準備語句可以防止SQL注入。檢查你所有的帖子有助於確保他們有一定的價值,如果需要。

<?php 
if(isset($_POST['submit'])){ 
    // Populate each variable 
    $cf = isset($_POST['Cus_fname'])?$_POST['Cus_fname']:""; 
    $cl = isset($_POST['Cus_lname'])?$_POST['Cus_lname']:""; 
    $cu = isset($_POST['Cus_Uname'])?$_POST['Cus_Uname']:""; 
    $cp = isset($_POST['Cus_Pword'])?$_POST['Cus_Pword']:""; 
    $ca = isset($_POST['Cus_address'])?$_POST['Cus_address']:""; 
    $cn = isset($_POST['Cus_contactnum'])?$_POST['Cus_contactnum']:""; 
    $ce = isset($_POST['Cus_email'])?$_POST['Cus_email']:""; 

    include("config.php"); 

    if ($stmt = $mysqli->prepare("INSERT INTO account (Cus_Uname, Cus_Pword) VALUES (?, ?, ?)")) { 
     // bind parameters for markers 
     $stmt->bind_param("sss", $cu, $cp); 
     // execute query 
     $stmt->execute(); 
     // close statement 
     $stmt->close(); 
    } 
    if ($stmt = $mysqli->prepare("INSERT INTO client (Cus_lname, Cus_fname, Cus_address, Cus_contactnum, Cus_email) VALUES (?, ?, ?, ?, ?)")) { 
     // bind parameters for markers 
     $stmt->bind_param("sssss", $cl, $cf, $ca, $cn, $ce); 
     // execute query 
     $stmt->execute(); 
     // close statement 
     $stmt->close(); 
    } 

    mysqli_close($con); 
} 
?> 

此代碼假定您的ID列使用自動遞增。在這種情況下,您不需要在INSERT中包含IS,它將在查詢運行時自動完成。

+0

這種代碼對我來說非常新穎。順便說一句,我只是一個小知識的新手,因此我不瞭解你的一些答案,所以對我不瞭解:) –

+0

讓我知道什麼是沒有意義或需要更多的信息。 – Twisty

+0

它現在修復顯然我帳戶表中的Cus_ID不是自動增量,這就是爲什麼它能夠存儲只有1個數據 我認爲? –

0

檢查您的帳戶表的查詢。

mysqli_query($ CON, 「INSERT INTO帳戶(Cus_ID,Cus_Uname,Cus_Pword) VALUES( '空', '$銅', '$ CP')」);

你已經把一個錯字「空」這是一個字符串到您的Cus_ID我假設的數據類型爲int,因爲它是一個ID。刪除單引號null,看看是否有效。

+0

我之前也嘗試過這個,但結果相同 –

+0

我只是將Insert查詢中的ID列放在一起。這假定該表被設置爲自動遞增ID列。如果是這種情況,那麼在查詢運行時,ID將由下一個ID號填充,並且您不必在ID列中輸入值。如果沒有,您需要在數據庫中查詢最後一個ID,將其增加,然後在查詢中手動輸入。 – Twisty

+0

它現在修復,我只是改變我的帳戶表上的自動增量我Cus_ID :)感謝您的迴應:) –

相關問題