Menggunakan MySQLi daripada Kelas Lain dalam PHP: Pecahan Terperinci
Dalam pertanyaan ini, pengguna telah menaik taraf MySQL kepada MySQLi selepas beralih daripada PHP 5.6 hingga 7.0. Selepas mengikuti panduan "Menggunakan MySQLi dalam kelas lain," mereka menghadapi ralat pelayan dalaman 500 apabila cuba mengakses sambungan pangkalan data daripada kelas lain.
Untuk memahami ralat, mari kita periksa kod PHP pengguna. Mereka mempunyai tiga kelas: kelas Pangkalan Data untuk mewujudkan sambungan MySQLi, kelas MyAPI tempat mereka cuba mengakses sambungan ini dan fungsi berasingan di mana mereka membuat pertanyaan pangkalan data sebenar.
Analisis Ralat
Masalah timbul daripada beberapa isu asas dalam kod:
Penyelesaian
Untuk menangani isu ini, langkah berikut disyorkan:
Berikut ialah kod PHP yang dipertingkatkan contoh:
pangkalan data.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_once 'Database.php'; # require_once 'myapi.php'; require 'vendor/autoload.php'; // autoloading is a must $api = new MyAPI($db, $request_uri, $postData, $origin); $user = $api->getUser($_POST['id']);
Dengan pengubahsuaian ini, pengguna seharusnya dapat mewujudkan Sambungan MySQLi dan melaksanakan pertanyaan pangkalan data daripada kelas yang berbeza.
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Sambungan Pangkalan Data MySQLi dengan Betul dari Kelas Berbeza dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!