我正在學習使用MySQL的PHP PDO,並想知道如何使用表1中的單行鏈接的一個更新查詢更新多個表。 示例如果我想更新表2中的值和/或3,其中一個查詢只知道表1記錄PK ID。我想也許我可以使用左連接,但不能正確。我不需要使用左連接,只需要最優化的編碼。PHP PDO更新MySQL多個表
不會導致任何更改的示例代碼。我相信它沒有正確鏈接。
**我希望從代碼:更新表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
任何幫助將是巨大的,謝謝。
編輯1:我確實嘗試發佈表格佈局的圖像,但不幸的是我沒有足夠的代表點根據這個網站。感謝您的鏈接。
EDIT2:解釋更詳細
EDIT3:爲了便於審覈
你應該在你的問題中發佈你的表格的佈局,因爲我們更容易以這種方式訪問,而不是離開網站看到其他信息 - 這樣的東西可能會幫助你正確格式化http: //ozh.github.io/ascii-tables/ – James
提供「不工作」的更多細節?你期望它做什麼?它做了什麼? –
您的表格在您的代碼中與圖片中的名稱不同。如果't1'是一個短名稱,代碼將是'UPDATE table_long_name t1 ...'。 – AbcAeffchen