roundcubemail/program/lib/Roundcube/rcube_db.php
protected function query_parse($query)
    {
        $start = $this->options['identifier_start'];
        $end   = $this->options['identifier_end'];
        $quote = self::DEFAULT_QUOTE;

        if ($start == $quote) {
            return $query;
        }

        $pos = 0;
        $in  = false;

        while ($pos = strpos($query, $quote, $pos)) {
            if ($query[$pos+1] == $quote) {  // skip escaped quote
                $pos += 2;
            }
            else {
                if ($in) {
                    $q  = $end;
                    $in = false;
                }
                else {
                    $q  = $start;
                    $in = true;
                }

                $query = substr_replace($query, $q, $pos, 1);
                $pos++;
            }
        }

        return $query;
    }
protected function query_parse($query)
    {
        $start = $this->options['identifier_start'];
        $end   = $this->options['identifier_end'];
        $quote = self::DEFAULT_QUOTE;

        if ($start == $quote) {
            return $query;
        }

        $pos = 0;
        $in  = false;

        while ($pos = strpos($query, $quote, $pos)) {
            if ($query[$pos+1] == $quote) {  // skip escaped quote
                $pos += 2;
            }
            else {
                if ($in) {
                    $q  = $end;
                    $in = false;
                }
                else {
                    $q  = $start;
                    $in = true;
                }

                $query = substr_replace($query, $q, $pos, 1);
                $pos++;
            }
        }

        return $query;
    }
protected function query_parse ( $ query ) { $ start = $ this -> options [ 'identifier_start' ] ; $ end = $ this -> options [ 'identifier_end' ] ; $ quote = self :: DEFAULT_QUOTE ; if ( $ start == $ quote ) { return $ query ; } $ pos = 0 ; $ in = false ; while ( $ pos = strpos ( $ query , $ quote , $ pos ) ) { if ( $ query [ $ pos + 1 ] == $ quote ) { // skip escaped quote $ pos += 2 ; } else { if ( $ in ) { $ q = $ end ; $ in = false ; } else { $ q = $ start ; $ in = true ; } $ query = substr_replace ( $ query , $ q , $ pos , 1 ) ; $ pos ++ ; } } return $ query ; }
Parse SQL query and replace identifier quoting

@param string $query SQL query

@return string SQL query
Parse SQL query and replace identifier quoting