Ir para conteúdo

POWERED BY:

Arquivado

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

MarKteus

[Resolvido] Conexão com banco já conectado

Recommended Posts

O que acontece quando se tenta realizar uma conexão e abertura de um banco, qdo esse banco já está conectado e aberto.

 

Ele é reaberto, dá erro, perde-se dados recem-gravados ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele é reaberto, dá erro, perde-se dados recem-gravados ?

 

Uma nova conexão é aberta, não da erro nem se perdem os dados recém gravados, porém você perde tempo estabelecendo a nova conexão desnecessária.

Pesquise sobre Registry, para manter o registro da sua conexão na aplicação, dessa forma, em vez de reabrir a conexão, você utiliza a que já está aberta apenas recuperando o registro dela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Duas perguntas

 

O SELECT retorna um conjunto de dados.

e o que INSERT e UPDATE retornam ? true ou false ? ou também o nome dos campos atualizados ?

 

Como faço para guardar ou pegar o nome de um campo recém gravado ? é necessário sempre utilizar SELECT para esta finalidade ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

e o que INSERT e UPDATE retornam ? true ou false ? ou também o nome dos campos atualizados ?

 

Se você utilizar mysql_query para fazer um insert ou update você terá um true ou false.

 

Como faço para guardar ou pegar o nome de um campo recém gravado ? é necessário sempre utilizar SELECT para esta finalidade ?

 

Se você acabou de gravar os dados então você já tem eles e não é necessário fazer um select para isso, agora se você quiser saber qual foi o ID do último registro inserido você pode utilizar mysql_insert_id

 

http://br.php.net/manual/pt_BR/function.mysql-insert-id.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para ficar mais claro o que tá acontecendo comigo é o seguinte

 

pego uma variavel enviada por uma pagina php da seguinte forma:

<a href="pagina.php?cod=&".$codvar.">fdsfds></a>

 

na página q recebe faço isso

$CodAssBus=$_GET´['cod'];

 

realizo uma busca com esse codigo assim:

 

$strBuscaTop = "SELECT * FROM cadTopico INNER JOIN cadassunto on cadTopico.codAssunto = cadAssunto.cod WHERE codAssunto = '".$CodAssBus."' ORDER BY 1 DESC";
$sqlQueryTop = mysql_query($strBuscaTop);

 

se encontrar beleza, senão gravo assim:

$strGravaTop = "INSERT INTO cadTopico (codUsuario, strTitulo, codAssunto, strDescricao) VALUES ('".$_SESSION['codUsu']."','$strtitulo','$codigoAssunto','$strdescricao')";
$sqlGravaTop = mysql_query($strGravaTop);

 

depois eu preciso atualizar essa mesma linha pq ainda só gravei o codigoAssunto e quero gravar o restante dos dados vindos de um Form qualqeur.

 

to fazendo o seguinte:

Seleciono de novo pra saber onde realizo o UPDATE dessa forma:

 

$strBuscaCodTop = "SELECT * FROM cadTopico ORDER BY cod DESC LIMIT 0, 1";
$sqlQueryCodTop = mysql_query($strBuscaCodTop);
$codigoAssunto = $sqlQueryCodTop['codassunto'];
//1º problema aqui ele ñ tá trazendo o codigo gravado, verifiquei isso dando um echo
$strUpdatTop = "UPDATE cadTopico set codUsuario='".$_SESSION['codUsu']."', strTitulo='$strtitulo', codassunto='$codigoAssunto', strDescricao='$strdescricao' WHERE codassunto = '$codigoAssunto'";
$sqlUpdatTop = mysql_query($strUpdatTop);

 

e nada é gravado.

 

o pior é q o INSERT gravou e as vezes ele até encontra o registro mas mesmo assim não grava (Atualiza).

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que está errado no seu código é que você não está fazendo nada para pegar o resultado, tipo um mysql_result, ou fetch(array, assoc, object) nesta parte.

 

$sqlQueryCodTop = mysql_query($strBuscaCodTop);
$codigoAssunto = $sqlQueryCodTop['codassunto'];

E se o código for para pegar qual o id da última inserção e for no mesmo script, pode usar o mysql_insert_id.

http://br.php.net/mysql_insert_id

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que está errado no seu código é que você não está fazendo nada para pegar o resultado, tipo um mysql_result, ou fetch(array, assoc, object) nesta parte.

 

$sqlQueryCodTop = mysql_query($strBuscaCodTop);
$codigoAssunto = $sqlQueryCodTop['codassunto'];

E se o código for para pegar qual o id da última inserção e for no mesmo script, pode usar o mysql_insert_id.

http://br.php.net/mysql_insert_id

 

Carlos Eduardo

 

 

Como pode se usar mysql_fetch_(array, assoc, object) sem while ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, é interessante que, antes de perguntar, você faça um teste.

Tente fazer e veja se funciona ou não. Veja se aparece algum erro ou não.

 

Como o assunto principal do tópico já foi solucionado, vou marcar o tópico como resolvido.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, é interessante que, antes de perguntar, você faça um teste.

Tente fazer e veja se funciona ou não. Veja se aparece algum erro ou não.

 

Como o assunto principal do tópico já foi solucionado, vou marcar o tópico como resolvido.

 

Carlos Eduardo

 

Na verdade fiz o teste e não deu certo então achei q poderia ser um erro meu http://forum.imasters.com.br/public/style_emoticons/default/graduated.gif

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.