繁体   English   中英

使用MySQL中的外键将数据存储到2个表

[英]store data to 2 tables with foreign key in MySql php

我在MySql中有两个表,分别是表1和表2。因为我想通过userID将表1链接到表2。 但是,我出来的功能不起作用。

MySQl表如下:

在此处输入图片说明

在此处输入图片说明

在我的情况下,userId将是链接这两个表的外键。 但是,我的功能不起作用。 这是我的功能如下:

function insert() {
    function adduserdetails($con, $accountId, $name, $contact) {

        $query = "insert into userdetails(accountId,name,contact) 
            values('$accountId','$name','$contact')";
        //echo "{$sqlString}";



        $insertResult = mysqli_query($con, $query);


        if ($insertResult) {
            echo " Applicant Detail Added !<br />";
            echo "<a href='index.php'>Back to Home</a>";
        } else {
            echo " Error !";
            echo "{$query}";
            //header('Location: post.php');
        }
    }

}

if ($con->query($query) === TRUE) {
    $last_id = $con->insert_id;
    echo "New record created successfully. Last inserted ID is: " . $last_id;
} else {
    echo "Error: " . $query . "<br>" . $con->error;
}

function adduseremployment($con,$last_id,$occupationMain,$comapny){

    $query1 = "insert into useremployment(userId,Occupation,company) 
            values('$last_id',$occupationMain','$comapny')";            
                 //echo "{$sqlString}";


                 $insertResult = mysqli_query($con, $query1);


                 if($insertResult){
                     echo " Applicant Detail Added !<br />";
                     echo "<a href='index.php'>Back to Home</a>";
                 }
                 else {
                     echo " Error !";
                     echo "{$query1}";
                     //header('Location: post.php');
                 }


}

在第二次插入中,您使用了错误的列名(userID而不是accountID)

   $query1 = "insert into useremployment(userID,Occupation,company) 
                                         ^^^^^^ here
          values('$last_id',$occupationMain','$comapny')";            

并且在功能签名和正文中您拥有comapny(可能是您想要的公司)

您有垂直表。

检查下面的代码,

请记住要准备陈述。

<?php
    function addUser(){
        // parent table.
        $queryParent = ''; // Your userdetails table insert query
        $insertResult = mysqli_query($con, $queryParent);
        $userId = mysqli_insert_id($con); // This is your last inserted userId.

        // child table.
        $queryChild = ''; // Your useremployment table insert query with userId.
        $insertResult = mysqli_query($con, $queryChild);
    }
?>

您的查询错误,请检查一下,

$query1 = "insert into useremployment(userId,occupation,company) 
        values('$last_id',$occupationMain','$comapny')";  

您必须将记录存储在userId上,以免损坏“ accountID”。

希望能帮助到你,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM