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
632 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!

source:php.cn
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