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

1.10.x
Yannick Warnier 10 years ago
parent 34e2303205
commit 90db3db38e
  1. 12
      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']];

Loading…
Cancel
Save