You are here

public function FrxOracle::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/FrxOracle.php, line 352
Oracle specific driver that takes advantage of oracles native XML support

Class

FrxOracle

Namespace

Drupal\forena\Driver

Code

public function format($value, $key, $raw = FALSE) {
  if ($raw) {
    return $value;
  }
  $value = $this
    ->parmConvert($key, $value);
  if ($value === '' || $value === NULL || $value === array()) {
    $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 .= '(';
          }
          else {
            $val .= ',';
          }
          $val .= "'" . str_replace("'", "''", $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 = "'" . str_replace("'", "''", $value) . "'";
    }
  }
  return $value;
}