gpt4 book ai didi

php - 使用 PDO 在一个表中查找记录并将数据追加到另一个表中

转载 作者:行者123 更新时间:2023-11-29 05:48:33 24 4
gpt4 key购买 nike

我有 2 个表,每个表有 3 列

Table1 有一个列,idcodenameTable2 有一个列,idnametable1id

当在 Table2 中创建新记录时,table1id 列需要填写 Table1 具有的该名称的 ID。

查询必须查看在 Table2 中创建的最后一个 ID,并将 Table2 名称列与 Table1 中的名称相匹配,然后附加id 与 Table2 的名称相关联。

如何正确地做到这一点?以下是我的PDO结构:

    $last_id = $conn->lastInsertId();
$stmt = $conn->prepare('UPDATE `Table2` SET `table1id` = :last_id_0) WHERE `id` = :last_id');
$stmt->execute([

]);

变量 :table1id 应该基于 Table2 中最后创建的记录,但我不确定如何从这里继续。

这是描述的两个表的可视化表示: enter image description here

更新:

最后插入的 id 像这样分配给变量 $last_id :

   $stmt = $conn->prepare( ' INSERT INTO `Table2` (`name`)
VALUES (:name ) ' );
$stmt->execute([
'name' => $_POST['name']
])

$last_id = $conn->lastInsertId();

最佳答案

我想我知道你想要什么。我假设 table1 已经存在了很长时间,而您所做的只是在 table2 中插入一行。您可以使用 INSERT INTO SELECT像这样:

$stmt = $conn->prepare('INSERT INTO `Table2` (`name`, `table1id`)
SELECT `name`, `id`
FROM `table1`
WHERE `table1`.`name` = :name');
$stmt->execute(['name' => $_POST['name']]);

此查询使用从 table1 中选择的名称和 ID 将新行插入 table2table1 中的所选记录是具有匹配名称的记录。

请注意,只有 table1 中的名称是唯一的,这才有效

关于php - 使用 PDO 在一个表中查找记录并将数据追加到另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57106161/

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