Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
fecha o resultset antes de executar outra query
$select1->close();
$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()){
}
as vezes eu tenho esse mesmo problema..
"resolvi" fechando a conexão depois das consultas
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...
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
Nossa mas que timeout e esse que aguenta só uma conexão... não tem tipo assim uma mysqli_pconnect uma conexão persistente
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.
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;
eu tbm gosto do mysqli por causa da performance, mas infelizmente não encontrei outra solução.
Cara, posta o código certo que tá dando erro... você colocou um pseudo-código que nem tem sentido, não faz nada!