0

我正在使用 MySQL 学习 PHP PDO,并且想知道如何使用从表 1 中的单行链接的一个更新查询来更新多个表。例如,如果我想用一个只知道表的查询来更新表 2 和/或 3 中的值1 记录 PK id。我想也许我可以使用左连接,但不能正确。我不需要使用左连接,只需要最优化的编码。

不会导致任何更改的示例代码。我相信它没有正确链接。

**我希望从代码中得到什么:更新表 2,3 等特定行中的值。通过只知道表 1 中具有表 2,3 外键的 PK。

$updt = $db->prepare("UPDATE t3 LEFT JOIN t1 ON t1.table3_fk =  
t3.table3_id SET t3.fooTable3=:VAR1, t3.barTable3=:VAR2 WHERE   
t1.table1_id = :VARID");
$updt->bindParam(':VAR1', $VAR1, PDO::PARAM_STR);
$updt->bindParam(':VAR2', $VAR2, PDO::PARAM_STR);
$updt->bindParam(':VARID', $VARID, PDO::PARAM_STR);     
$updt->execute();

表结构:

t1              t2             t3     
table1_id(PK)   table2_id(PK)  table3_id(PK)
table2_fk       fooTable2      fooTable3
table3_fk                      barTable3

示例记录:

t1     t2            t3
22     10            14
10     someabcdata   somedefdata
14                   someefgdata

任何帮助都会很棒,谢谢。

Edit1:我确实尝试过发布一张表格布局的图片,但不幸的是,根据这个网站,我没有足够的代表点数。不过感谢您的链接。

Edit2:解释更多细节

Edit3:去掉图片以便于查看

4

1 回答 1

0

您的代码包含错字。在第一个语句中,您的变量被调用$updtt,但后续语句使用$updt.

于 2015-11-17T02:19:46.613 回答