я хочу использовать транзакции с этим запросомУдалить из с переменным числом аргументов
DELETE FROM tbl WHERE id IN(?, ?, ?)
Но число идентификаторов является переменной. Иногда у меня есть 2, иногда 5 и т. Д.
Могу ли я переписать его по-другому, поэтому он принимает один аргумент ?
, который содержит все ID?
Код:
$pdo->beginTransaction();
$st = $pdo->prepare('DELETE FROM tbl WHERE id IN(?, ?, ?)');
foreach(...){
$st->execute(array($id1, $id2, $id3));
// but here I may have only 2 IDs to pass, or 5 etc.
}
$pdo->commit();
спасибо, но я не думаю, что вы понимаете. Я только хочу подготовить запрос один раз, поэтому он не может измениться ... – Alex
@Alex Вы не можете использовать тот же подготовленный оператор для разных номеров идентификаторов. –
@Alex +1 Вам нужно только подготовить его один раз. Затем просто привяжите и выполните для каждого элемента, который у вас есть. Поместите все исполнения внутри транзакции, и вы получите почти оптимальную производительность для любой СУБД. –