Maison >base de données >tutoriel mysql >Comment puis-je me connecter avec succès à MySQLi à partir d'une classe distincte en PHP et résoudre les erreurs de connexion ?

Comment puis-je me connecter avec succès à MySQLi à partir d'une classe distincte en PHP et résoudre les erreurs de connexion ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-29 16:13:10322parcourir

How Can I Successfully Connect to MySQLi from a Separate Class in PHP and Troubleshoot Connection Errors?

Utilisation de MySQLi à partir d'une autre classe en PHP : dépannage des erreurs de connexion

En PHP, l'utilisation de MySQLi à partir d'une classe distincte peut présenter des défis, en particulier lorsque mise à niveau à partir d'anciennes versions de PHP. Cet article aborde les problèmes courants et propose des solutions pour vous aider à établir une connexion réussie.

Description du problème

L'implémentation initiale de la connexion à la base de données dans une classe distincte et son accès dans la classe API a entraîné une erreur de serveur interne (500) lors de la tentative d'interrogation du base de données.

Solution

Après enquête, plusieurs bonnes pratiques ont été négligées dans la configuration d'origine :

  • Extension d'une classe d'utilisateurs à partir de la base de données la classe n'est pas nécessaire.
  • La classe de base de données ne sert à rien.

Pour résoudre le problème problème, considérez ce qui suit :

1. Élimination de la classe de base de données redondante

Jetez la classe de base de données inutile et créez une seule instance MySQLi à la place.

2. Injection de dépendances

Fournir l'instance MySQLi en tant que paramètre de constructeur à chaque classe nécessitant une connexion à la base de données.

3. Exemple de mise en œuvre

database.php :

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$db = new mysqli("localhost", "DBUserName", "UserPassword", "SelectedDB");
$db->set_charset('utf8mb4');

myapi.php :

class MyAPI
{
    protected $db;

    public function __construct($db, $request_uri, $postData, $origin)
    {
        $this->db = $db;
    }

    public function getUser($id)
    {
        $sql = "SELECT * FROM users where>

Conseils pour le débogage

  • Implémenter Journalisation des erreurs PHP pour capturer les erreurs ou exceptions.
  • Vérifiez les informations d'identification de la base de données et assurez-vous que les extensions MySQLi requises sont activées.
  • Vérifiez les détails de connexion à la base de données et assurez-vous que vous vous connectez à la bonne base de données.
  • Évitez de mélanger différentes couches d'abstraction de base de données (par exemple, MySQL et MySQLi) au sein de la même application.

Par en adhérant à ces recommandations, vous pouvez établir une connexion à la base de données robuste et maintenable en PHP.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn