PHP: conversão de pedidos SQL

pedroac

Membro
Olá, este é o meu primeiro "post". :hello:

Estou a implementar uma classe em PHP, para "Data Manipulation Language" (SQL, em geral) e "Data Access Language". Preciso de uma função que converta uma string, com a parte WHERE de um pedido SQL standard, para uma implementação SQL definida. Por exemplo, o MySQL não reconhece o operador "||" como concatenação, por isso deve ser convertido para a função CONCAT.

Pensei fazer uma máquina de estados (é o que faria em C/C++), mas acho que não teria boa performance em PHP (precisava de reservar espaço numa "string buffer")...

Exemplo de um método da classe (com o comentário TODO):
PHP:
     function update($tablename, array $fields_new, $where, array $wherefields = NULL) {
        // build arrays
        $set_array = array();
        foreach($fields as $col => $value) {
            array_push($set_array, $col . '=' . $this->quote($value));
        }
        
        // TODO: convert where
        
        // build query and send it
        $query = 'UPDATE ' . $tablename .
                 ' SET ' . implode(', ', $set_array) . 
                 'WHERE ' . $where;
        return $this->query($query, $wherefields);
    }

Alguém tem alguma sugestão?

Abraços.
 
Back
Topo