"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 compartilhar uma conexão MySQLi entre diferentes classes em PHP?

Como compartilhar uma conexão MySQLi entre diferentes classes em PHP?

Publicado em 2024-11-02
Navegar:428

How to Share a MySQLi Connection Between Different Classes in PHP?

Usando o MySQLi em classes: um guia de solução de problemas

Usar o MySQLi em classes diferentes pode ser desafiador, mas não se preocupe. Vamos nos aprofundar nos problemas que você encontrou e fornecer uma solução.

Problema: Erro interno do servidor 500

  • Causa: Tentativa para acessar a propriedade conn do objeto Database após criá-lo em uma classe diferente (MyAPI).

Solução: Inicialize o objeto Database dentro do construtor MyAPI e passe-o como um parâmetro para outras funções que requerem uma conexão com o banco de dados. Isso garante que todas as classes que compartilham a conexão tenham uma referência direta à mesma instância.

Exemplo:

// myapi.php
class MyAPI {
    private $db;

    public function __construct($db) {
        $this->db = $db;
    }

    public function getUser($id) {
        $result = mysqli_query($this->db->conn, "SELECT * FROM users WHERE id='$id'");
        return mysqli_fetch_assoc($result);
    }
}

// app.php
// Initialize database once
$db = new mysqli(...);

// Create MyAPI instance with database reference
$api = new MyAPI($db);

// Use MyAPI to access user information
$user = $api->getUser(1);

Considerações adicionais:

  • Evite estender User do banco de dados, pois não é necessário.
  • Crie diretamente uma única instância do mysqli e passe-a para as classes que precisam dela.
  • Use instruções preparadas para melhor segurança e desempenho.
  • Certifique-se de que os parâmetros de conexão do banco de dados estejam corretos e que o banco de dados esteja acessível.

Seguindo essas etapas, você poderá usar o MySQLi com sucesso a partir de diferentes classes em PHP.

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