Maison > base de données > tutoriel mysql > Comment utiliser correctement les connexions MySQLi sur différentes classes PHP ?

Comment utiliser correctement les connexions MySQLi sur différentes classes PHP ?

Patricia Arquette
Libérer: 2024-11-30 06:26:10
original
743 Les gens l'ont consulté

How to Properly Use MySQLi Connections Across Different PHP Classes?

Utiliser MySQLi à partir d'une autre classe en PHP

Lors de la mise à niveau de PHP 5.6 vers 7.0, il est nécessaire de mettre à jour MySQL vers MySQLi. Cependant, cela peut parfois entraîner des problèmes de configuration.

Problème :

Après la mise à niveau vers PHP 7.0 et MySQLi, tentative d'accès aux connexions à la base de données à l'aide de $this->db ->conn entraîne une erreur de serveur interne 500, même si la connexion à la base de données est créée directement dans la classe fonctionne.

Solution :

L'erreur est causée par plusieurs mauvaises pratiques :

  • L'extension d'une classe à partir de la base de données est incorrecte.
  • La classe Database elle-même n'est pas utile car elle ne fournit aucune fonctionnalité.

Pour résoudre le problème :

  1. Éliminez la classe Database.
  2. Créez une seule instance $db à partir de mysqli simple.
  3. Passez cette instance en tant que paramètre de constructeur à toute classe qui nécessite une connexion à une base de données.

Exemple Code :

// database.php
$db = new mysqli("localhost", "DBUserName", "UserPassword", "SelectedDB");
$db->set_charset('utf8mb4');
Copier après la connexion
// myapi.php
class MyAPI
{
    protected $db;

    public function __construct($db, $request_uri, $postData, $origin)
    {
        $this->db = $db;
    }
    // ... (rest of the class omitted for brevity)
}
Copier après la connexion
// app.php
require 'vendor/autoload.php'; // assuming autoloading is set up

$api = new MyAPI($db, $request_uri, $postData, $origin);
$user = $api->getUser($_POST['id']);
Copier après la connexion

En suivant ces directives, vous pouvez utiliser avec succès MySQLi à partir d'autres classes 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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal