[firebase-br] PHP + Firebird + Apóstrofo.

Gustavo Moda gustavo.moda em gmail.com
Ter Mar 17 13:54:27 -03 2009


Olá,
Use a função abaixo

    function escape_sql($valor,$null=true) {
        $null = strtolower($null);
        if ( (string)$valor == ""  && $null===true) return 'NULL';
        $valor = str_replace("'", "''", $valor);
        $valor = "'".$valor."'";
        return $valor;
    }

2009/3/17 Alexandre Pereira Bühler <buhler em infobrindes.com.br>:
> Boa tarde,
> Faço uso do php + firebird 2.1.
> Tenho problemas com strings no seguinte formato.
> joão d'avila.
> Já coloquei a sintaxe desta forma com addslashes:
>
> for ($a=1; $a <= $contador; $a++)
> {
> $sql1="".$registros[$a][0];
> $sql2="".addslashes($registros[$a][1]);
> $sql3="".$registros[$a][2];
> $sql4="".$registros[$a][4];
> $sql5="".$registros[$a][5];
> $sql6="".$registros[$a][6];
> $sql7="".$registros[$a][7];
> $sql8="".addslashes($registros[$a][8]);
> $sql9="".addslashes($registros[$a][9]);
> $fdb->insertclientes('null',"$sql1","$sql2","$sql3","$sql4","$sql5","$sql6","$sql7","$sql8","$sql9");
> }
>
>
> Para os primeiros 8000 registros vai beleza, inclusive se tiver o tal
> d'avila
> Depois da erro.
>
>
> ( ! ) Warning: ibase_query() [function.ibase-query
> <http://www.lacombe/function.ibase-query>]: Dynamic SQL Error SQL error code
> = -104 Token unknown - line 1, column 236 AQUINO in
> /var/www/lacombe/classes/firebird.class.php on line /26/
> Call Stack
> #       Time    Memory  Function        Location
> 1       0.0041  73852   {main}( )       ../importacao.php*:*0
> 2       16.1217         62182112        firebird->insertclientes( )
> ../importacao.php*:*30
> 3       16.1217         62182464        ibase_query
> <http://www.php.net/ibase_query> ( ) ../firebird.class.php*:*26
>
> Dynamic SQL Error SQL error code = -104 Token unknown - line 1, column 236
> AQUINO
>
> O tal Aquino é:
>
> insert into CLIENTES
> (CLI_ID,CLI_CODIGO,CLI_NOME,CLI_CNPJ,CLI_IE,CLI_RG,CLI_CPF,CLI_END,CLI_BAI)
> values (null,'9678','xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> ','xxxxxxxxxxxxxxxx','xxxxxxxxxxxx ',' ',' ','RUA IVO D'AQUINO, NR. xxx
> ','CENTRO ')
>
> Meu magic_quotes_sybase está on.
> Eu uso isto numa importação que faço do dbase para o firebird.
> No campo nome do cliente tudo passa normal o  problema e no campo endereço.
> Estranho isto. Pode ser o dbf que está corrompido?
> Ou algum segredo que minha experiência ainda não sabe?
> Como disse o registros para nome tem strings contém  apóstrofo  e tudo vai
> normal. Sei lá o que pode ser
> Agradeço qualquer ajuda.
> Obrigado
>
> --
> Alexandre Pereira Bühler
> Linux User: 397.546
>
> Simão & Bühler Ltda (Infobrindes)
> Instalação, manutenção e venda de servidores GNU/Linux.
> http://www.infobrindes.com.br
> alexandre em infobrindes.com.br
> Telefones: (41) 3538-5428 / (41) 3532-5428
> Colunista: www.delphisophp.com
> Owner: http://br.groups.yahoo.com/group/freepascal/
>
> Liberdade é essencial. Use GNU/Linux.
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>




Mais detalhes sobre a lista de discussão lista