插入两个不同的数据库表

时间:2019-01-21 14:21:20

标签: php mysqli

我有一个表单,该表单会将用户从表单中输入的信息插入数据库中,我想将电子邮件存储在单独的表中以供用户使用。

因此,我想在帐户表中添加电子邮件,然后在用户表中添加用户名和密码。对于任何想知道为什么的人,我要构建的应用程序将允许用户在死后创建一个新用户,但可以在帐户中存储东西以备后用。

试图使用多个相同的代码,但是却变得太多而迷失了,所有这些必须比复制多个扩展代码容易得多。

非常感谢。

$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.");

1 个答案:

答案 0 :(得分:0)

如果您希望在单独的表中插入单独的数据,建议您仅使用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);
相关问题