繁体   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