[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