You are here

public function FrxDrupal::format in Forena Reports 7.5

Implement custom SQL formatter to make sure that strings are properly escaped. Ideally we'd replace this with something that handles prepared statements, but it wouldn't work for

Parameters

unknown_type $value:

unknown_type $key:

unknown_type $data:

File

src/Driver/FrxDrupal.php, line 251
Provides data blocks for native drupal connections using the default drupal connections.

Class

FrxDrupal

Namespace

Drupal\forena\Driver

Code

public function format($value, $key, $raw = FALSE) {
  if ($raw) {
    return $value;
  }
  $db = \Database::getConnection('default');
  $value = $this
    ->parmConvert($key, $value);
  if ($db) {
    if ($value === '' || $value === NULL) {
      $value = 'NULL';
    }
    else {
      if (is_array($value)) {
        if ($value == array()) {
          $value = 'NULL';
        }
        else {

          // Build a array of values string
          $i = 0;
          $val = '';
          foreach ($value as $v) {
            $i++;
            if ($i > 1) {
              $val .= ',';
            }
            $val .= $db
              ->quote($v);
          }
          $value = $val;
        }
      }
      elseif (is_int($value)) {
        $value = (int) $value;
        $value = (string) $value;
      }
      elseif (is_float($value)) {
        $value = (double) $value;
        $value = (string) $value;
      }
      else {
        $value = trim($value);
        $value = $db
          ->quote($value);
      }
    }
  }
  return $value;
}