Apabila menaik taraf daripada PHP 5.6 kepada 7.0, adalah penting untuk beralih daripada MySQL kepada MySQLi. Peralihan ini boleh memperkenalkan cabaran, terutamanya apabila cuba mengakses sambungan MySQLi daripada kelas berasingan. Soalan ini menyerlahkan satu situasi sedemikian di mana percubaan untuk menyambung ke pangkalan data daripada kelas API menggunakan kelas pangkalan data membawa kepada ralat pelayan dalaman.
Punca isu ini terletak pada pematuhan kepada amalan pengaturcaraan yang baik. Melanjutkan pengguna daripada kelas pangkalan data adalah tidak betul, dan kelas pangkalan data itu sendiri tidak mempunyai fungsi yang ketara. Untuk menyelesaikan ralat ini dan menambah baik reka bentuk keseluruhan, pertimbangkan langkah berikut:
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']);
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Sambungan Pangkalan Data MySQLi dengan Benar daripada Kelas PHP yang Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!