[Cascavel-pm] [Off-Topic] UPDATE
Nelson Ferraz
nferraz em gmail.com
Segunda Julho 23 07:33:07 PDT 2007
> Seguinte galerinhahhhh...
> Uso o bd mysql e não entendo o por que do comando UPDATE não
> funcionar caso haja um texto muito longo para atualizar.
>
> UPDATE `noticias` SET `noticia` = '$texto_todo' WHERE `codigo` =
> '121249';
>
> onde em $texto_todo, há um texto muito grande e o UPDATE não faz a
> atualização. Porque?
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.
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;
[]s
Nelson
Mais detalhes sobre a lista de discussão Cascavel-pm