1. Geen prepared statement gebruiken. Maar gewoon een combi van PDO::quote en implode.
2. Je prepared statement eerst laten genereren op basis van de waarden die je erin wilt stoppen (dus weer implode, maar nu met placeholder-namen) en dan later dezen met een lusje toewijzen aan het statement. Let hier wel even heel erg op: bindParam verbindt je variabele met de query. Verander je de waarde van de variabele, dan pakt hij dus de waarde die je variabele heeft wanneer je PDOStatement::execute aanroept. Je moet dus even opletten dat je bij bijvoorbeeld een foreach-lus. Niet:
<?php
foreach($array as $key => $value) {
$stmt->bindParam(':' . $key, $value);
}
?>
maar
<?php
foreach(array_keys($array) as $key) {
$stmt->bindParam(':' . $key, $array[$key]);
}
?>