You are here

public function FrxPDO::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/FrxPDO.php, line 185
General database engine used to do sql queries.

Class

FrxPDO

Namespace

Drupal\forena\Driver

Code

public function format($value, $key, $raw = FALSE) {
  if ($raw) {
    return $value;
  }
  $db = $this->db;
  $value = $this
    ->parmConvert($key, $value);
  if ($db) {
    if ($value === '' || $value === NULL || $value === array()) {
      $value = 'NULL';
    }
    elseif (is_int($value)) {
      $value = (int) $value;
      $value = (string) $value;
    }
    elseif (is_float($value)) {
      $value = (double) $value;
      $value = (string) $value;
    }
    elseif (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 .= $this
            ->quote($v);
        }
        $value = $val;
      }
    }
    else {
      $value = $this
        ->quote($value);
    }
  }
  return (string) $value;
}