You are here

private function EvaluationImplementation::generateSql in Drupal 8 upgrade evaluation 6

Same name and namespace in other branches
  1. 7 includes/EvaluationImplementation.php \Upgrade_check\EvaluationImplementation::generateSql()

Generate SQL.

9 calls to EvaluationImplementation::generateSql()
EvaluationImplementation::upgradeCheckCommentData in includes/EvaluationImplementation.php
Fetch comment data.
EvaluationImplementation::upgradeCheckEntityData in includes/EvaluationImplementation.php
Fetching: Nodes/Files usage/Users/Image styles/Roles/Languages/Blocks.
EvaluationImplementation::upgradeCheckFieldsData in includes/EvaluationImplementation.php
Fetch fields data.
EvaluationImplementation::upgradeCheckFilesData in includes/EvaluationImplementation.php
Fetch files data.
EvaluationImplementation::upgradeCheckMenusData in includes/EvaluationImplementation.php
Fetch menus data.

... See full list

File

includes/EvaluationImplementation.php, line 619

Class

EvaluationImplementation

Namespace

Upgrade_check

Code

private function generateSql($data, $dontAll = FALSE) {
  $result = array();
  $fields = $ident = $condition = '';
  if (!empty($data) && !empty($data['t']) && !empty($data['a'])) {
    if (!empty($data['j']) && !empty($data['j']['t'])) {
      if (!empty($data['j']['a']) && !empty($data['j']['jt']) && !empty($data['j']['con'])) {
        $sqlVal = $data['a'] . '.' . $data['j']['con']['left'] . ' = ';
        $sqlVal .= $data['j']['a'] . '.' . $data['j']['con']['right'];
        if ($data['j']['jt'] === 'inner') {
          $join = 'INNER';
        }
        elseif ($data['j']['jt'] === 'left') {
          $join = 'LEFT';
        }
        elseif ($data['j']['jt'] === 'right') {
          $join = 'RIGHT';
        }
        $joinSql = $join . ' JOIN {' . $data['j']['t'] . '} ' . $data['j']['a'] . ' ON ' . $sqlVal;
      }
      if (!empty($data['j']['f'])) {
        foreach ($data['j']['f'] as $valFC) {
          $fields .= $ident . $data['j']['a'] . '.' . $valFC;
          $ident = ', ';
        }
      }
      if (!empty($data['j']['c']) && is_array($data['j']['c'])) {
        $ident = '';
        foreach ($data['j']['c'] as $value) {
          if (!empty($value) && !empty($value['f']) && !empty($value['v'])) {
            $param = '=';
            if (!empty($value['p'])) {
              $param = $value['p'];
            }
            if (!empty($conditions)) {
              $ident = ' AND ';
            }
            if (is_numeric($value['v'])) {
              $conditions .= $ident . $value['f'] . ' ' . $param . ' ' . $value['v'];
            }
            else {
              $conditions .= $ident . $value['f'] . ' ' . $param . ' "' . $value['v'] . '"';
            }
          }
        }
      }
    }
    if (!empty($data['f']) && is_array($data['f'])) {
      $ident = '';
      if (!empty($fields)) {
        $ident = ', ';
      }
      foreach ($data['f'] as $valF) {
        $fields .= $ident . $data['a'] . '.' . $valF;
        $ident = ', ';
      }
    }
    if (!empty($data['c']) && is_array($data['c'])) {
      $ident = '';
      foreach ($data['c'] as $value) {
        if (!empty($value) && !empty($value['f']) && !empty($value['v'])) {
          $param = '=';
          if (!empty($value['p'])) {
            $param = $value['p'];
          }
          if (!empty($conditions)) {
            $ident = ' AND ';
          }
          if (is_numeric($value['v'])) {
            $conditions .= $ident . $value['f'] . ' ' . $param . ' ' . $value['v'];
          }
          else {
            $conditions .= $ident . $value['f'] . ' ' . $param . ' "' . $value['v'] . '"';
          }
        }
      }
    }
    if (!empty($fields)) {
      $query = 'SELECT ' . $fields . ' FROM {' . $data['t'] . '} ' . $data['a'];
      if (!empty($joinSql)) {
        $query .= ' ' . $joinSql;
      }
      if (!empty($conditions)) {
        $query .= ' WHERE ' . $conditions;
      }
      if (empty($dontAll)) {
        $sql = db_query($query);
        while ($data = db_fetch_object($sql)) {
          if (!empty($data)) {
            $result[] = $data;
          }
        }
      }
      else {
        return db_query($query);
      }
    }
  }
  return $result;
}