如何在插入脚本的数据库表中检索新存储的数据?

时间:2017-05-05 08:18:46

标签: php mysql

我想问一下。我在数据库中有两个表。在这种情况下,我有一个表单来获取所有需要存储的数据。其中一些数据必须存储在一个表中,一些存储在另一个表中。但是,一个表中的数据ID也应存储在另一个表中以便检索。例如,在表1中我有ID,表1中的这个ID也应该在表2中同时存储为T2_ID,当用户按下提交按钮的那一刻,数据应该根据其目的自动平均存储。但是,在我的情况下,只存储表1的那些数据,因为在保存之后我无法从表1中检索ID。

这是我的代码:

if (mysqli_query($connect, $sql)) {
    $getinfo = "SELECT id FROM names WHERE firstname='$firstname' AND lastname='$lastname'";
    $query = mysql_query($getinfo, $connect);
    $row = mysql_fetch_array($query);
    $forid = $row['id'];
    $sql2 = "INSERT INTO phonenumbers (name_id, type, number) 
            VALUES ('$forid', '$contacttype', '$newnum')";

    if (mysqli_query($connect, $sql2)) {
        echo "<script>alert('New record added successfully!');</script>";
        header('Location: index.php');exit();
    }
    else {
        echo "<script>alert('Error: " . $sql2 . "<br>" . mysqli_error($connect) . "');</script>";
        header('Location: index.php');exit();
    }

}
else {
    echo "<script>alert('Error: " . $sql . "<br>" . mysqli_error($connect) . "');</script>";
    header('Location: index.php');exit();
}

2 个答案:

答案 0 :(得分:0)

您可以获得查询的最后插入ID

$forid = mysqli_insert_id($connect);
$sql2 = "INSERT INTO phonenumbers (name_id, type, number) 
        VALUES ('$forid', '$contacttype', '$newnum')";

答案 1 :(得分:0)

你需要使用insert select ..

查询后

 INSERT INTO tbl1 (column1, column2) 
 VALUES ('$val1', '$val2');

你应该像

那样查询另一个
 INSERT INTO tbl2 (id, tbl2column, tbl2anothercolumn)
 SELECT id, $anotherval as 'whatever' , $anotherval2 as 'anything' FROM tbl1 WHERE column1 = '$val1' and column2 = '$val2'