You are here

public function FrxMSSQL::format in Forena Reports 7.4

Same name and namespace in other branches
  1. 6.2 plugins/FrxMSSQL.inc \FrxMSSQL::format()
  2. 6 plugins/FrxMSSQL.inc \FrxMSSQL::format()
  3. 7 plugins/FrxMSSQL.inc \FrxMSSQL::format()
  4. 7.2 plugins/FrxMSSQL.inc \FrxMSSQL::format()
  5. 7.3 plugins/FrxMSSQL.inc \FrxMSSQL::format()

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

plugins/FrxMSSQL.inc, line 195
Oracle specific driver that takes advantage of oracles native XML support

Class

FrxMSSQL
@file Oracle specific driver that takes advantage of oracles native XML support

Code

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