Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bruno Ferrreira

Erro em query de atualização / update

Recommended Posts

Bom dia a todos...

 

Por favor pessoal, caso alguém saiba a causa do problema que listarei abaixo e puder, por gentileza, compartilhar comigo e com os usuários de fórum a solução eu ficarei muito grato.

 

Pois bem... eu tenho uma classe que faz uma atualização na tabela de profissionais de uma empresa, chamada 'people'. Porém a query utilizada na atualização não está adequada para fazer o update dos dados. Veja a seguir:

 

QUERY:

 

UPDATE `people` SET (`Nome`='Trevor', `Ingresso`='08/02/2009', `E-mail`='trevor@gmail.com', `Cargo`='Fisioterapeuta', `Formacao`='Fisioterapia - PUC Minas', `Foto`='6d7a8004ac9b7bcfbcc2cdbe1ca2ad93.JPG', `Descricao`='bla bla bla') WHERE id = 2

 

ERRO:

 

Uncovered an error in your SQL query script: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(`Nome`='Trevor', `Ingresso`='08/02/2009', `E-mail`='trevor@gmail.com', `Cargo`=' at line 1" in C:\xampp\htdocs\grid\inc\class.eyemysqladap.inc.php on line 126.

 

MINHA FUNÇÃO DE UPDATE:

 

public function update(array $values, $table, $where = false, $limit = false)
{
	if (count($values) < 0)
		return false;
			
	$fields = array();

	$where = ($where) ? " WHERE " . $where : '';
	$limit = ($limit) ? " LIMIT " . $limit : '';

		//A chamada a funcao 'query' executa a funcao listada logo abaixo
		if ($this->query("UPDATE `" . $table . "` SET (
																			   `Nome`='".$values[1]."', 
																			   `Ingresso`='".$values[2]."', 
																			   `E-mail`='".$values[3]."', 
																			   `Cargo`='".$values[4]."', 
																			   `Formacao`='".$values[5]."', 
																			   `Foto`='".$values[6]."', 
																			   `Descricao`='".$values[7]."'
																		  )" . $where))
			return true;
	else
		return false;
}

public function query($query)
{
	//echo 'QUERY:'.$query.'<br><br>';
		$result = mysql_query($query, $this->link);

	$this->result = $result;

	if ($result == false)
		trigger_error('Uncovered an error in your SQL query script: "' . $this->error() . '"');

	return $this->result;
}

A etrutura da minha tabela eh a seguinte:

 

Lembrando que esta tabela possui um campo chave (Id) o qual eu não coloquei na query para update, pois ele eh autoincrement.

Fiz um teste colocando ele na query, recebendo um valor ' ' (em branco), mas não adiantou nada.

 

Imagem Postada

 

Então meus amigos, alguém consegue visualizar o erro aí???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Brother!

 

Além de tirar os parentesis, pode tirar os cráses também.

 

Como sugestão, dentro da função update() faça um echo logo após a montagem de sua string e antes de executar a query.

 

Copie o que apresentou na tela e execute no seu administrador de DB para conferir se roda perfeitamente sem erros.

 

Valewwww....

Compartilhar este post


Link para o post
Compartilhar em outros sites

:rolleyes: É verdade, os parentesis não podem estar contidos nessa query.

 

Alex, eu já tinha pensado nisso, e com essa implementação (echo $query) que você sugeriu é que eu obtive a string correspondente à query que apresentei no início do tópico, que se segue:

 

QUERY:

 

UPDATE `people` SET (`Nome`='Trevor', `Ingresso`='08/02/2009', `E-mail`='trevor@gmail.com', `Cargo`='Fisioterapeuta', `Formacao`='Fisioterapia - PUC Minas', `Foto`='6d7a8004ac9b7bcfbcc2cdbe1ca2ad93.JPG', `Descricao`='bla bla bla') WHERE id = 2

 

 

Obrigado a todos pelo interesse em ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.