From 3b514abd6be8b5cb471e2c909c20f3147ccd9056 Mon Sep 17 00:00:00 2001 From: Alexei Sorokin Date: Mon, 24 Aug 2020 16:16:00 +0300 Subject: [PATCH] [Queue_item] Let DataObject construct WHERE IN --- classes/Queue_item.php | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/classes/Queue_item.php b/classes/Queue_item.php index 8b75ec3afd..388bf4b788 100644 --- a/classes/Queue_item.php +++ b/classes/Queue_item.php @@ -61,20 +61,24 @@ class Queue_item extends Managed_DataObject $qi = new Queue_item(); if ($transports) { if (is_array($transports)) { - // @fixme use safer escaping - $list = implode("','", array_map(array($qi, 'escape'), $transports)); - $qi->whereAdd("transport in ('$list')"); + $qi->whereAddIn( + 'transport', + $transports, + $qi->columnType('transport') + ); } else { $qi->transport = $transports; } } if (!empty($ignored_transports)) { - // @fixme use safer escaping - $list = implode("','", array_map(array($qi, 'escape'), $ignored_transports)); - $qi->whereAdd("transport NOT IN ('$list')"); + $qi->whereAddIn( + '!transport', + $ignored_transports, + $qi->columnType('transport') + ); } + $qi->whereAdd('claimed IS NULL'); $qi->orderBy('created'); - $qi->whereAdd('claimed is null'); $qi->limit(1); @@ -95,7 +99,7 @@ class Queue_item extends Managed_DataObject common_log(LOG_ERR, 'claim of queue item id= ' . $qi->getID() . ' for transport ' . $qi->transport . ' failed.'); } } - $qi = null; + unset($qi); return null; }