[Cascavel-pm] [Off-Topic] UPDATE
Luis Motta Campos
luismottacampos em yahoo.co.uk
Segunda Julho 23 08:03:01 PDT 2007
On Jul 23, 2007, at 4:33 PM, Nelson Ferraz wrote:
> Em primeiro lugar, repare que o exemplo que você nos mandou usa
> backticks (`...`) ao invés de aspas simples ('...') ou duplas
> ("..."). Não sei se este é um padrão SQL universalmente aceito; eu,
> pessoalmente, nunca usei.
Não se pode chamar "padrão" - é mais uma idiosincrasia do MySQL.
> Em segundo lugar, verifique se a variável $texto_todo passou pelo
> método quote(), para "escapar" quotes dentro de quotes.
>
> O que nos leva diretamente ao terceiro ponto: evite embutir variáveis
> dentro do SQL -- prefira usar prepare(), indicando os placeholders
> com "?", seguido por execute(), onde você passa as variáveis. Por
> exemplo:
>
> my $sth = $dbh->prepare("INSERT INTO sales (product_code, qty,
> price) VALUES (?, ?, ?)") || die $dbh->errstr;
> $sth->execute($product_code, $qty, $price) || die $dbh->errstr;
Didático, e simples.
Mas por favor tente usar
DBI->connect( $dsn, $user, $passwd, { RaiseErrors => 1,
PrintErrors => 0, AutoCommit => 0 } )
Com estas opções:
1. Você transforma erros da base de dados em exceções, o que é
muito recomendado;
2. Você evita que o teu programa "vaze" dados e avisos
desnecessáriamente;
3. Você é obrigado a dizer "dbi_commit" ao final de cada
transação, o que também é importante.
Tão aí meus dois centavos
Putamplexos
--
Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,
Perl fanatic evangelist, and amateur {cook, photographer}
Mais detalhes sobre a lista de discussão Cascavel-pm