[Cascavel-pm] DBD::ODBC, escape sequences e placeholders

Nilson Santos Figueiredo Jr. acid06 em gmail.com
Quinta Novembro 26 17:53:01 PST 2009


2009/11/26 Eden Cardim <edencardim em gmail.com>:
> Basicamente, o DBI não introspecta nenhum dos valores passados, então
> você precisa formatar os dados manualmente antes de passar pro backend,
> pra lidar com quoting, palavras-chave, etc.
>
>    Alceu> data_criacao = { d ? }, data_atualizacao = { d ? },
>
> data_criacao = { d '?' }, data_atualizacao = { d '?' }
>
> se você fizar $date = '2009-01-01' e passar $date pro bind vai ficar:
>
> data_criacao = { d '2009-01-01' }, data_atualizacao = { d '2009-01-01' }
>
> que é a sintaxe que o backend espera.

Apenas uma sugestão: ao invés de alterar a query, colocando
placeholders na própria query, sugiro utilizar $dbh->quote no
parâmetro, que serve justamente pra este propósito.
Aliás, se alguém tiver a paciência de ler a manpage do DBI, eu tenho
quase certeza que tem uma maneira de contar pro DBI o tipo dos
parâmetros e aí ele faz a coisa certa automaticamente, mas eu estou
sem tempo agora pra indicar certinho, mas tenho quase certeza que está
lá.

-Nilson Santos F. Jr.


Mais detalhes sobre a lista de discussão Cascavel-pm