我从PHP MYSQL中学到使用数组中的值更新多行
$array = Array();
$query = $conn->query("
SELECT P.email,P.kodeunik FROM peserta P
LEFT JOIN konfirmasi K ON K.nominal=P.kodeunik
LEFT JOIN detailbca D ON D.mutasi =P.kodeunik
where P.paid='0' AND K.paid='0' AND D.paid='0'");
while($result = $query->fetch_assoc()){
$array[] = $result;
}
$email = implode(',', array_column($array, 'email'));
$nominal1 = implode(',', array_column($array, 'kodeunik'));
echo $nominal1; // 215003,215004,215005
现在我想要更新表,如果有来自$nominal1的几个数字,在这种情况下,3行表将被更新
$array1=$nominal1;
$sql1 = "UPDATE detailbca SET paid='1'
WHERE mutasi IN (' . implode(',', array_map('intval', $array1)) .";
$sql1 = $conn->query($sql);
这个查询不起作用,出了什么问题?
不需要再次使用implode()
。
您可以这样做,在$array
的kodeunik列上执行array_column()
,然后使用intval
执行array_map()
,最后使用,
执行implode()
it。
$email = "'" . implode("','", array_column($array, 'email')) . "'";
$nominal1 = implode(',', array_map('intval',array_column($array, 'kodeunik')));
$sql1 = "UPDATE detailbca SET paid='1' WHERE mutasi IN ($nominal1)";
$sql1 = $conn->query($sql);
你的语法不对
$array1=$nominal1;
$sql1 = "UPDATE detailbca SET paid='1'
WHERE mutasi IN ($nominal1)";
$sql1 = $conn->query($sql);