From 2a835e5be4b9327e445d1de897e91b361e6d4d1e Mon Sep 17 00:00:00 2001 From: Romain Quetiez Date: Tue, 19 Apr 2016 13:59:43 +0000 Subject: [PATCH] Internal: query arguments could be array values, making it easier to build dynamic IN() clauses SVN:trunk[4006] --- core/metamodel.class.php | 5 ++++- core/oql/expression.class.inc.php | 7 ++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/core/metamodel.class.php b/core/metamodel.class.php index da9706c38..44aa17d15 100644 --- a/core/metamodel.class.php +++ b/core/metamodel.class.php @@ -2488,7 +2488,10 @@ abstract class MetaModel { $aScalarArgs[$sArgName] = null; } - // otherwise... could be an array coming from the extra params... + elseif (is_array($value)) + { + $aScalarArgs[$sArgName] = $value; + } } } // Add standard magic arguments diff --git a/core/oql/expression.class.inc.php b/core/oql/expression.class.inc.php index b8f664200..7768ec428 100644 --- a/core/oql/expression.class.inc.php +++ b/core/oql/expression.class.inc.php @@ -648,7 +648,12 @@ class VariableExpression extends UnaryExpression } elseif (array_key_exists($this->m_sName, $aArgs)) { - return CMDBSource::Quote($aArgs[$this->m_sName]); + $res = CMDBSource::Quote($aArgs[$this->m_sName]); + if (is_array($res)) + { + $res = implode(', ', $res); + } + return $res; } elseif (($iPos = strpos($this->m_sName, '->')) !== false) {