簡體   English   中英

MySQL / PHP更新多對多表

[英]MySQL/PHP update Many-to-Many table

我的$ _POST數組看起來像這樣:(尤其是'child_address')

Array ( 
    [0] => Array ( 
        [child_address] => 123 Street 1 
    ) 
    [1] => Array ( 
        [child_address] => 123 Street 2 
    ) 
)

當我遍歷它們以插入MySQL多對多表時,將為表中具有相同ID的所有字段輸入數組中的最后一個值。

foreach ($child as $value) {
    $query = "UPDATE M_children
        SET child_address = ?, 
        WHERE personal_id = ?";
    $statement = $db->prepare($query);
    $statement->bind_param('si', $value['child_address'], $_SESSION['mysqlID']);
    $statement->execute();
}

在此處輸入圖片說明

這里有幾件事:

  1. 無需在for循環內定義查詢,它不會改變。
  2. 無需在for循環內准備語句,它也不會更改。
  3. bindParam綁定一個參數,當參數更改時,您需要做的就是再次調用execute,它將使用新的參數值運行查詢。

  4. 這是錯誤,您使用該個人ID更新每一行。 如果只想更新一行,則需要對更新查詢有更多選擇。

當您說“ SET child_address =?WHERE personal_id =?”時 並且兩個孩子的personal_id相同(在屏幕快照中為127),這將導致兩個孩子被設置為相同的地址。

您想更改查詢,或更改要傳遞的最后一個參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM