gpt4 book ai didi

php - 在mysql中同时向两个表插入数据

转载 作者:行者123 更新时间:2023-11-29 12:17:20 27 4
gpt4 key购买 nike

我有两个 mysql 表:

table1_id (PK) |  table1_data

table2_id (PK) |  table1_id (FK) | table2_data

并且它们必须同时创建以表示单个对象。主键是自动递增的,因此在插入 table1_data 之后,当我继续创建 table2 时,如何才能获得正确的、新创建的 table1_id 值以插入其中?

我是用 php 来做的:

$stmt = $conn->prepare("INSERT INTO table1 (`table1_data`) VALUES (:data)");
$stmt->bindParam(':data', $data);
$stmt->execute();

$stmt2 = $conn->prepare("INSERT INTO table2 (`table1_id`,`table2_data`) VALUES (:id,:data)");
$stmt2->bindParam(':id', $table1_id); //how can I get the id of row just created above by stmt?
$stmt2->bindParam(':data', $data2);
$stmt2->execute();

最佳答案

您可以使用PDO::lastInsertId方法。在执行第一次插入后调用它,这样你就得到:

$stmt = $conn->prepare("INSERT INTO table1 (`table1_data`) VALUES (:data)");
$stmt->bindParam(':data', $data);
$stmt->execute();

$table1_id = $conn->lastInsertId();

然后您可以在第二个查询中使用 $table1_id

关于php - 在mysql中同时向两个表插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29588315/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com