[PHP] [MySQL]如何同时在2个表中插入数据?

时间:2018-08-16 07:32:26

标签: php mysql

在2个表中插入数据时我有一个小问题,需要一些帮助。

例如:

表1:

CREATE TABLE tb1 (
    tb1_id int(5) not null AUTO_INCREMENT PRIMARY KEY,
    tb1_title varchar(50),
    tb1_cat varchar(50)
);

表2:

CREATE TABLE tb2 (
    tb2_id int(5) not null AUTO_INCREMENT PRIMARY KEY,
    tb2_title varchar(50),
    tb2_doc varchar(200),
    id_tb1 int(5) not null REFERENCES tb1(tb1_id)
);

tb1的一个条目可以包含tb2的许多信息(行),但是如何在tb1的某些行中插入tb2的ID?

formular.php:

$sqla = "INSERT INTO tb_1 (tb1_title, tb1_cat) VALUES ('$tb1_title', '$tb1_cat')";
$sqlb = "INSERT INTO tb_2 (tb2_title, tb2_doc, <b>[? ? ?]</b>) VALUES ('$tb2_title', '$tb2_doc', <b>[? ? ?]</b>)";

mysqli_query($db, $sqla);
mysqli_query($db, $sqlb);

我在这里需要更改什么?

3 个答案:

答案 0 :(得分:1)

您可以使用mysqli_insert_id()获取int i; for (i=1; i<arr_Size; i++){ infile >> integer; if(infile.fail())break; heapArr[i]=integer; SiftUp(i); } infile.close(); heapSize=i; for (int count =1 ; count <=5 ; count ++){ cout << count <<" :"<< heapArr[count] << endl; } return 0; } void SiftUp(int heapSize){ int p; if (heapSize==1) return; p = heapSize/2; if (heapArr[p] < heapArr[heapSize]) return; swap (heapArr[heapSize],heapArr[p]); SiftUp(p); } 的值,然后将其插入tb1_id

tb2

答案 1 :(得分:0)

是的,你可以..尝试这个..

BEGIN;
    INSERT INTO tb_1 (tb1_title, tb1_cat) VALUES ('$tb1_title', '$tb1_cat');
    INSERT INTO tb_2 (tb2_title, tb2_doc, <b>[? ? ?]</b>,id_tb1) VALUES ('$tb2_title', '$tb2_doc', <b>[? ? ?]</b>,LAST_INSERT_ID());
    COMMIT;

答案 2 :(得分:0)

$sqla = "INSERT INTO tableA (col1, col2) VALUES (val1, val2)";
mysqli_query($db,$sqla);
$id = mysqli_insert_id($db); //add it here.

$sqlb = "INSERT INTO tableB (col1,col2) VALUES (val1, val2, ...)";
//then you can pass the id into your second query
//...