Try code like this:
public function mergeIDs($newID,$changeTheseIDs){ //(分別為整數(shù)和整數(shù)數(shù)組) $mergeSet = array_merge([$newID],$changeTheseIDs); $marks = array_fill(0, count($changeTheseIDs), '?'); $query = $this->connect()->prepare("UPDATE `log` SET `id` = ? WHERE `id` IN (". implode(',', $marks) .");"); $query->execute($mergeSet); }
You need to prepare one ?
for each integer in the IN clause, not just one.
public function mergeIDs($newID,$changeTheseIDs){ //(分別是整數(shù)和整數(shù)數(shù)組) $inPH = implode(',', array_fill(0, count($changeTheseIDs), '?')); $query = $this->connect()->prepare("UPDATE `log` SET `id` = ? WHERE `id` IN ( {$inPH} );"); $query->execute([$newID, ...$changeTheseIDs]); }