[英]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.