Ir para conteúdo

POWERED BY:

Arquivado

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

Leonidas Pinheiro

Usar mesma query para gravar em duas tabelas diferentes

Recommended Posts

Boa Tarde,

 

Tenho essa query aqui:

 

$db->Query('INSERT IGNORE INTO `convidados`(`comemore_id`,`email`,`nome`) VALUES'.join(",", $vals));

 

 

E gostaria de salvar o nome e e-mail em outra tabela tbm nessa mesma sentença. Isso é possivel ? E como ficaria ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tenho certeza, mas acho que isso resolve:

$sql1 = 'INSERT IGNORE INTO `convidados`(`comemore_id`,`email`,`nome`) VALUES'.join(",", $vals);
$sql2 = 'INSERT IGNORE INTO `outra_tabela`(`comemore_id`,`email`,`nome`) VALUES'.join(",", $vals);

$db->Query($sql1.';'.$sql2);

Compartilhar este post


Link para o post
Compartilhar em outros sites

O exemplo do meu amigo ai de cima deve funcionar.

 

Se nao funcionar, voce pode gravar as tabelas em um array e dar um foreach depois.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha so como ficou a Query, e ainda sim não funcionou, a de cima grava tudo certo mais a de baixo não.

 


		$db->Query('INSERT IGNORE INTO `convidados`(`comemore_id`,`email`,`nome`) VALUES'.join(",", $vals));
			

		//Gravando dados em outra tabela 

		$db->Query2( 'INSERT IGNORE INTO `news_email` (`nome`, `email`, `grupo`, `data`, `suspenso`)
								
						VALUES("%s","%s",322,CURDATE(),0)', $args['nome'], $args['email'], $args['grupo'] ,DateToDb($args['data']), $args['suspenso']);
						

		$db->Sql($Query.';'.$Query2);

 

Como podem ver os dois unicos dados que eu preciso são o nome e e-mail, os outros são sempre os mesmos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Algum motivo especial para querer fazer no mesmo comando?

pq nao faz assim:

$db->Sql($Query);
$db->Sql($Query2);

Compartilhar este post


Link para o post
Compartilhar em outros sites

O mysql_query não aceita 2 instruções na mesma query. A mysqli_query também não aceita. A opção é utilizar o método mysqli::multi_query(), da classe MySQLi.

 

http://br.php.net/manual/pt_BR/mysqli.multi-query.php

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dei uma lida la.. mais mesmo assim ele não salva

 

ele simplesmente ignora essas querys, tudo que acontece antes e depois disso ele executa sem erro...

 


if (mysqli_multi_query($link, $query)) {


		$query = "INSERT IGNORE INTO `convidados`(`comemore_id`,`email`,`nome`) VALUES".join(",", $vals);
		
		$query .="INSERT IGNORE INTO `convidados2`(`comemore_id`,`email`,`nome`) VALUES".join(",", $vals);
		

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, você tá fazendo errado.

Primeiro, leia novamente o link que eu passei. Veja que as querys são separadas por ; entre elas.

Segundo, você está usando a $query antes de definir o valor pra ela. Aí não vai dar certo mesmo.

Terceiro, você trocou a função que faz a conexão para MySQLi ou continua com o mysql?

Por último, mas não menos importante, sugiro que leia o tópico de orientações para uma boa participação para habilitar todas as mensagens de erro do sistema.

 

Carlos Eduardo

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.