Infelizmente, "é a vida".   Você pode usar a função array_fill para "preencher" os marked placeholders.   Segue: $quantidade = count($cgc); $markedPlaceholders = array_fill(0 , $quantidade , '?'); $markedPlaceholders = implode(',' , $markedPlaceholders);   Com esse pequeno código acima, você possuirá a quantidade adequada de marked placeholders. Basta inserir no SQL. $statement = $pdo->prepare('SELCT * FROM tabela WHERE id IN ('.$markedPlaceholders.');');