Non usando i named paramenter, l'array che passi alla execute non deve essere associativo
ES:
Se usi i named invece devi usare un array associativo con le chiavi che corrispondoCodice PHP:
$s = $pdo->prepare("INSERT ... VALUES (?,?)");
$->execute([1,2]);
Codice PHP:
$s = $pdo->prepare("INSERT ... VALUES (:par1, :par2)");
$->execute([':par1' => 1,':par2'=> 2]);