[英]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();
}
這里有幾件事:
bindParam綁定一個參數,當參數更改時,您需要做的就是再次調用execute,它將使用新的參數值運行查詢。
這是錯誤,您使用該個人ID更新每一行。 如果只想更新一行,則需要對更新查詢有更多選擇。
當您說“ SET child_address =?WHERE personal_id =?”時 並且兩個孩子的personal_id相同(在屏幕快照中為127),這將導致兩個孩子被設置為相同的地址。
您想更改查詢,或更改要傳遞的最后一個參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.