Ir para conteúdo

Arquivado

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

Elvis Reis

MySQLi orientado a objeto

Recommended Posts

Galera o negocio e o seguinte to tentato usa o mysqli orientado a objeto mas ta sempre dando um erro quando tento executar mas de uma query na mesma clase de conexão;

 

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given in

 

tipo

assim

 

$connect = minha conexão mysqli

 

 

$select1 = $connect->query(SELECT 1);

 

while($row1 = $select1->fetch_assoc()){

}

 

$select2 = $connect->query(SELECT 2);

 

while($row2 = $select2->fetch_assoc()){

}

 

sempre da o erro asim ja coloquei o free_result e continua so da certo se extanciar outra conexao

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, posta o código certo que tá dando erro... você colocou um pseudo-código que nem tem sentido, não faz nada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

$mysqli = new mysqli("localhost", "usuario", "senha", "banco");

 

$produto = $mysqli->query("CALL SPD_PRODUTO(9);");

$row_prod = $produto->fetch_assoc(); // Sempre me retorna um produto

 

echo $row_prod['id_produto'];

 

$cross_seling = $mysqli->query("CALL SPD_CROSS_SELING(".$row_prod['fk_sessao'].",".$row_prod['id_produto'].")");

 

 

while($row_cross_seling = $cross_seling->fetch_assoc()){

 

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

as vezes eu tenho esse mesmo problema..

 

"resolvi" fechando a conexão depois das consultas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lucas mas você fica abrindo e fechando sempre as conexões ai não rola... deve ter um solução pra fechar só no final da pagina quando acabar de executar todas as querys...

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu fiz essa mesma pergunta para o Fabyo

 

huahuahuhuahuahu

 

eu fiz o seguinte..para não precisar ficar fechando a abrindo..

antes de executar uma consulta, eu verifico se a conexão está aberta (função ping), se não estiver eu conecto novamente..

 

não sei se é impressão..mas parece que q extensão mysqli tem timeout menor que o normal..

porém mesmo assim ainda gosto muito de utilizá-la

Compartilhar este post


Link para o post
Compartilhar em outros sites

então..

 

acredito que não seja bem um timeout...

é que no meu caso o mais lógico seria que o php estivesse destruíndo o objeto de conexão e na minha classe no método destrutor, fecha a conexão..

porém é um incógnita que já perguntei pra muita gente que manja bem de php..e ninguém sabe o motivo exato..

 

como disse, resolvi fazendo a verificação com ping

http://br.php.net/manual/pt_BR/mysqli.ping.php

 

se estiver fechado a conexão eu abro novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lucas assim como descreveu com o ping ate funciona mas eu to querendo performace, escolhi o mysqli por causa das procedures sera que ficar pingando e reconectando não vai cair muito a performace, nossa e um pé no saco essa conexão;

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu tbm gosto do mysqli por causa da performance, mas infelizmente não encontrei outra solução.

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.