Zit met een klein 'probleempje', een limitatie van PDO als het ware. Ik wil het volgende kunnen bereiken (semi-pseudo code)
<?php
$keys = implode(',', $_POST['keys']);
$rslt = Database::fetchAll("SELECT id FROM PREFIX_table WHERE key_id IN(:keys)", array('keys' => $keys));
?>
Probleem is echter dat PDO het ziet als een string, wat op zich logisch is aangezien het daadwerkelijk een string is. Hij moet 'm echter niet als een string zien, omdat de query daardoor ongeldig wordt.
Wat is nu sneller om te doen?
<?php
$data = array();
$i = 0;
$in = '';
foreach ($_POST['keys'] as $key) {
if (is_int($key)) {
$i++;
$data['assigned_' . $i] = $key;
$in .= ':assigned_' . $i . ',';
}
}
$result = Database::fetchAll("SELECT id FROM PREFIX_table WHERE key_id IN(" . rtrim($in, ',') . ")", $data);
?>
of op een andere manier?