Maison >base de données >tutoriel mysql >Comment puis-je accéder correctement à une connexion à une base de données MySQLi à partir de différentes classes PHP ?
Lors de la mise à niveau de PHP 5.6 vers 7.0, il est essentiel de passer de MySQL à MySQLi. Cette transition peut introduire des défis, en particulier lorsque l'on tente d'accéder aux connexions MySQLi à partir de classes distinctes. Cette question met en évidence une situation dans laquelle une tentative de connexion à une base de données à partir d'une classe API utilisant une classe de base de données a conduit à une erreur de serveur interne.
La racine du problème réside dans le respect des bonnes pratiques de programmation. L'extension d'un utilisateur à partir d'une classe de base de données est incorrecte et la classe de base de données elle-même manque de fonctionnalités significatives. Pour résoudre cette erreur et améliorer la conception globale, envisagez les étapes suivantes :
database.php <?php mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); $db = new mysqli("localhost", "DBUserName", "UserPassword", "SelectedDB"); $db->set_charset('utf8mb4');
myapi.php <?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>
app.php <?php require 'vendor/autoload.php'; // autoloading is recommended $api = new MyAPI($db, $request_uri, $postData, $origin); $user = $api->getUser($_POST['id']);
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!