Quellcode durchsuchen

Revert to manual query to avoid issues with query with multiple variable tokens (%s) - refs BT#9092

Yannick Warnier vor 10 Jahren
Ursprung
Commit
90db3db38e
1 geänderte Dateien mit 6 neuen und 6 gelöschten Zeilen
  1. 6 6
      plugin/advanced_subscription/src/AdvancedSubscriptionPlugin.php

+ 6 - 6
plugin/advanced_subscription/src/AdvancedSubscriptionPlugin.php

@@ -843,12 +843,12 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface
             }
 
             $mergedArray = array_merge(array($sessionId), array_keys($fields));
-            $sessionFieldValueList = $extraSession->get_all(
-                array(
-                    'session_id = ? field_id IN ( ?, ?, ?, ?, ?, ?, ? )' => $mergedArray
-                )
-            );
-            foreach ($sessionFieldValueList as $sessionFieldValue) {
+
+            $sql = "SELECT * FROM " . Database::get_main_table(TABLE_MAIN_SESSION_FIELD_VALUES) .
+                " WHERE session_id = %d AND field_id IN (%d, %d, %d, %d, %d, %d, %d)";
+            $sql = vsprintf($sql, $mergedArray);
+            $sessionFieldValueList = Database::query($sql);
+            while ($sessionFieldValue = Database::fetch_assoc($sessionFieldValueList)) {
                 // Check if session field value is set in session field list
                 if (isset($fields[$sessionFieldValue['field_id']])) {
                     $var = $fields[$sessionFieldValue['field_id']];