"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como resolver o erro “Chamada para uma função de membro prepare() em null” na conectividade do banco de dados?

Como resolver o erro “Chamada para uma função de membro prepare() em null” na conectividade do banco de dados?

Publicado em 2024-11-08
Navegar:969

How to Resolve the \

Erro de função de membro nulo: um problema na conectividade do banco de dados

Ao encontrar um erro "Chamada para uma função de membro prepare() em nulo" , o problema geralmente decorre de uma variável não inicializada na instância da classe. No seu caso, o problema está na falta de inicialização da variável $pdo.

Na sua classe Category, os métodos fetch_all() e fetch_data() requerem uma conexão PDO. No entanto, o código fornecido não estabelece esta conexão explicitamente. Para resolver esse erro, você precisa garantir que a variável $pdo seja inicializada dentro do escopo global antes de chamar os métodos da classe.

prepare("SELECT * FROM dd_cat");
        $query->execute();

        return $query->fetchAll();
    }

    public function fetch_data($cat_id) {
        global $pdo;

        // Use the initialized $pdo variable to prepare the SQL query
        $query = $pdo->prepare("SELECT * FROM dd_cat WHERE cat_id = ?");
        $query->bindValue(1, $cat_id);
        $query->execute();

        return $query->fetch();
    }
}

?>

Ao inicializar a variável $pdo globalmente e garantir que ela seja usada nos métodos de classe, você estabelecerá uma conexão de banco de dados adequada e resolverá o erro "Chamada para uma função de membro prepare() em nulo".

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3