Ir para conteúdo
Fórum Script Brasil
  • 0

Erro na include


Douglas Tomachevski

Pergunta

Pessoal, na versão php 5.6 funcionava desta forma, estou migrando para a 8.12 e esta dando varios erros.

Tenho uma função que calcula item, dentro desta função chama outras funções com include.

quando coloco include no laço da pau. com a include_once fala que não conecta com banco.

Function CalculaItem($item, $cliente)
{
    $obj1     = new Capa();
    $ret_capa = $obj1-> pegacapa($cliente);

    
    $obj2     = new Item();
    $ret_item = $obj2-> pegaitem($codigo);
}

dentro de cada função desta ai eu tenho uma include com conexão mesmo banco e o "select * ...."
se eu rodar com um item editando, passa.
O problema é quando chamo ela em laço, da erro diferente com iclude e include_once
include = erro de conexão com banco.
include_once = Fatal error: Uncaught TypeError: odbc_exec(): Argument #1 ($odbc) must be of type resource

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

O seu código trabalha com duas classes, e eu simplifiquei numa só classe:

arquivo conexao.php
<?php
$mysqli=new mysqli("localhost","root","","diario");

arquivo index.php
<?php
include('conexao.php');
class Capa {
    function pegaCapa($cliente){
        global $mysqli;
        return $mysqli->query("select pessoa from tbpessoa where pessoa like '%$cliente%' limit 1")
                    ->fetch_assoc()['pessoa'];
    }
    function pegaItem($codigo){
        global $mysqli;
        return $mysqli->query("select codp from tbpessoa where codp=$codigo")
                    ->fetch_assoc()['codp'];
    }
}
function calculaItem($item,$cliente){
    $ret_capa=(new Capa)->pegaCapa($cliente);
    $ret_item=(new Capa)->pegaItem($item);
    return "ret_capa $ret_capa ret_item $ret_item";
}

echo calculaItem(1,"Frank");

O include funciona do mesmo jeito desde o PHP 5.6 até o PHP 8.1.2, e aqui testei no PHP 8.4.0.
O problema do PHP 8.1.2 é que ele não dá mais suporte para o motor mysql - no lugar temos dois novos motores: o mysqli e o PDO. Desconfio que o problema é o motor que você está tentando usar no PHP 8.1.2.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...