抱歉问这个问题,我是初学者。但是在我写这篇文章之前,我已经搜索过类似的问题,并且已经尝试过,但是没有成功,所以我决定在这里提问。

我这里有2张桌子:

CREATE TABLE users (
id_user char (4) PRIMARY KEY,
username varchar (20),
password varchar (200),
role set ('admin','operator','user)
);


CREATE TABLE info_user (
    id_info char (4),
    email varchar (200),
    fullname varchar (200),
    birthday date,
    address varchar (200),
    telephone varchar (200)
    );


因此,每个用户都有每个信息,属性id_info是具有id_user的外键。外键对吗?还是倒过来?这是我的PHP表单代码:

<?php
include_once('config.php');

$username   = mysql_real_escape_string($_POST['username']);
$password   = mysql_real_escape_string($_POST['password']);
$role       = mysql_real_escape_string($_POST['role']);
$email      = mysql_real_escape_string($_POST['email']);
$fullname   = mysql_real_escape_string($_POST['fullname']);
$sex        = mysql_real_escape_string($_POST['sex']);
$birthday   = mysql_real_escape_string($_POST['birthday']);
$adress     = mysql_real_escape_string($_POST['adress']);
$telephone  = mysql_real_escape_string($_POST['telephone']);
$confirm_pass   = ($_POST['confirm_password']);



if ($confirm_pass != $password) {
    echo" <script language='JavaScript'> alert ('Password didn't match!');</script>";
    echo '<script language="JavaScript"> window.location.href ="register.php" </script>';
} else {
    $dup = mysql_query("SELECT username FROM users WHERE username='".$_POST['username']."'");
        if(mysql_num_rows($dup) >0){
            echo"<script language='JavaScript'> alert ('Username is already exist');</script>";
        echo '<script language="JavaScript"> window.location.href ="register.php" </script>';
        } else {
    // simpan data ke database
    $query1 = mysql_query("insert into users values('', '$username', '".md5($_POST['password'])."', '$role'");
        $query2 = mysql_query("insert into info_user values ('', '$email', '$fullname', '$sex','$birthday','$adress','$telephone')");


    if ($query1 && $query2) {
        // if success to save data
        echo" <script language='JavaScript'> alert ('Your registration is successfull');</script>";
        echo '<script language="JavaScript"> window.location.href ="halaman_admin.php" </script>';
} else {
    // if failed to save data
     echo" <script language= 'JavaScript'> alert ('There's error occured, please try again!'); </script>";
     echo '<script language="JavaScript"> window.location.href ="register.php" </script>';
    }}
}
?>


我尝试使用此代码,但是没有用。如何使其运作?这些表是相关的。预先感谢您对我的帮助,我真的需要这个。

最佳答案

由于需要新创建的user行中的键来正确创建info_user行,因此需要执行此操作。

// simpan data ke database
$query1 = mysql_query("insert into users values('',
                                                '$username',
                                                '".md5($_POST['password'])."',
                                                '$role'");

if ( $query1 ) {
    $new_id_user = mysql_insert_id();  // get id_user of newly created user row

    $query2 = mysql_query("insert into info_user values ($new_id_user,
                                                        '$email',
                                                        '$fullname',
                                                        '$sex',
                                                        '$birthday',
                                                        '$adress',
                                                        '$telephone')");
    if ( ! $query2 ) {
        // insert of info_user failed, code appropriatly
    }
} else {
    // insert of new User failed, code appropriatly
}

关于php - 如何使用PHP将数据插入数据库的2个表中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22576967/

10-14 13:08
查看更多