[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