[Cascavel-pm] contra barra

Luis Motta Campos luismottacampos em yahoo.co.uk
Quinta Outubro 18 03:34:49 PDT 2007


On Thu, Oct 18, 2007 at 08:07:20AM -0300, Ricardo Stock wrote:
>     Bom dia a todos da lista.... estou com uma duvida um tanto simples
>     de resolver, mas é aqueles detalhes que pega voce....
>     
>     Estou fazendo meu projeto, no ato do registro, todo usuário recebe
>     uma pasta base ( que só sera acessada pelo script para guardar
>     alguns documentos, mas minha duvida esta sendo em guardar este
>     caminho no banco, sei que no perl, para representar a contra-barra
>     "\" é necessário utlizar duas "\\", veja um trecho do código
> 
> $dbh->do("update usuarios set caminho='local'\\usuario\\$numero' where
> numero=$numero"); 
> 
> 
> onde a pasta é criada com o numero em que o usuário se registrou,
> nisto o script funciona muito bem... mas no my sql quando executo o
> comando acima ele é gravado da seguinte forma localusuarionumero exe
> localusuario1234 ou seja não grava no caminho as barras, sei que no
> mysql tambem tenho que colocar duas barras e fazendo na linha de
> comando do mysql funciona....
> 
>     algum tem alguma dica... desde ja agradeço

Ricardo, por favor leia o manual do DBI, e aprenda a usar placeholders
para as suas queries. Eu reescrevi o teu codigo direito, para voce
entender como as coisas funcionam:

# Assumo que voce usa 
# my $dbh = DBI->connect( $dsn, $user, $passwd, { AutoCommit => 0,
# PrintError => 0, RaiseError => 1 } );
# em algum lugar do seu codigo
eval{
    # Prepara um comando para executar
    my $sth = $dbi->prepare( q{UPDATE usuarios SET caminho = ? WHERE
    numero = ?} );
    # executa o comando, protege os dados contra expansao indesejada
    $sth->execute( $caminho, $numero );
    # tem certeza de que seus dados estao no banco antes de continuar.
    $sth->commit;
};
if( $@ ) { 
    # trata os teus erros antes de continuar
}

Putamplexos!
-- 
Luis Motta Campos
Perl Programmer, Hobbyist Cook and Photographer


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