簡體   English   中英

插入兩個不同的數據庫表

[英]Inserting into two different database tables

我有一個表單,可以將用戶從表單輸入的內容插入數據庫,我想將電子郵件存儲在單獨的表中給用戶。

所以我想要一個帳戶表中的電子郵件,然后是用戶表中的用戶名和密碼。 對於任何想知道原因的人來說,我想要構建的應用程序將允許用戶在死后創建一個新用戶,但可以將內容存儲在將被結轉的帳戶中。

我嘗試使用多個相同的代碼,但代碼太多並迷失在其中。 必須有一種比多次復制拉伸代碼更簡單的方法。

$sql = "SELECT user_name FROM users WHERE user_name=?";
    $stmt = mysqli_stmt_init($conn);
    if(!mysqli_stmt_prepare($stmt, $sql)) {
        header("Location: ../register.php?error=Sql_Error");
        exit();
        
    } else {
        
    
    mysqli_stmt_bind_param($stmt, "s", $character);
    mysqli_stmt_execute($stmt);
    mysqli_stmt_store_result($stmt);
    $resultCheck = mysqli_stmt_num_rows($stmt);
        
     if ($resultCheck > 0) {
         header("Location: ../register.php?error=CharacterTaken&email=".$emailAddress); 
         exit();
     } else {
         
        $sql = "INSERT INTO users (user_name, user_email, user_password) VALUES (?, ?, ?)";
        $stmt = mysqli_stmt_init($conn);
        if (!mysqli_stmt_prepare($stmt, $sql)) {
            header("Location: ../register.php?error=Sql_Error");
            exit;
            
            
        } else {
            
        $hashedPwd = password_hash($password, PASSWORD_DEFAULT);
            
        mysqli_stmt_bind_param($stmt, "sss", $character, $emailAddress, $hashedPwd);
        mysqli_stmt_execute($stmt);
        header("Location: ../register.php?success=Account Created.");

如果您希望在單獨的表中插入單獨的數據,我建議您只使用 2 個單獨的 INSERT 查詢。

由於您的代碼已經有一部分在執行此操作,因此最簡單的方法是對其進行調整和復制:

替換這部分代碼

$sql = "INSERT INTO users (user_name, user_email, user_password) VALUES (?, ?, ?)";
        $stmt = mysqli_stmt_init($conn);
        if (!mysqli_stmt_prepare($stmt, $sql)) {
            header("Location: ../register.php?error=Sql_Error");
            exit;


        } else {

        $hashedPwd = password_hash($password, PASSWORD_DEFAULT);

        mysqli_stmt_bind_param($stmt, "sss", $character, $emailAddress, $hashedPwd);
        mysqli_stmt_execute($stmt);

有了這個:

$sql = "INSERT INTO users (user_name, user_password) VALUES (?, ?)";
        $stmt = mysqli_stmt_init($conn);
        if (!mysqli_stmt_prepare($stmt, $sql)) {
            header("Location: ../register.php?error=Sql_Error");
            exit;
        } else {

        $hashedPwd = password_hash($password, PASSWORD_DEFAULT);

        mysqli_stmt_bind_param($stmt, "ss", $character, $hashedPwd);
        mysqli_stmt_execute($stmt);

$sql = "INSERT INTO accounts (user_email) VALUES (?)";
        $stmt = mysqli_stmt_init($conn);
        if (!mysqli_stmt_prepare($stmt, $sql)) {
            header("Location: ../register.php?error=Sql_Error");
            exit;
        } else {

        mysqli_stmt_bind_param($stmt, "s", $emailAddress);
        mysqli_stmt_execute($stmt);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM