


Bagaimanakah Saya Boleh Mengakses Sambungan MySQLi dengan Benar daripada Kelas Berasingan dalam PHP?
Dec 10, 2024 pm 04:22 PMMenggunakan MySQLi dari Kelas Lain dalam PHP
Penerangan Masalah:
Soalan meminta bantuan dalam mengakses sambungan MySQLi yang ditubuhkan dalam kelas yang berasingan daripada dalam kelas lain. Kelas pangkalan data dengan sifat sambungan dibuat dan kelas API cuba mengakses sambungan ini. Walau bagaimanapun, percubaan untuk mengakses sambungan mengakibatkan ralat pelayan dalaman.
Jawapan:
Amalan dan Syor Buruk:
Kod yang disediakan mengandungi beberapa amalan buruk yang menyumbang kepada ralat:
- Melanjutkan kelas (Pengguna) daripada kelas Pangkalan Data adalah tidak sesuai.
- Kelas Pangkalan Data tidak mempunyai fungsi penting.
Adalah disyorkan untuk:
- Menghapuskan Kelas pangkalan data kerana ia tidak mempunyai tujuan yang bermakna.
- Buat satu contoh $db daripada vanila mysqli.
- Lepaskan contoh ini sebagai hujah pembina kepada kelas yang memerlukan sambungan pangkalan data.
Difaktorkan semula Kod:
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 essential $api = new MyAPI($db, $request_uri, $postData, $origin); $user = $api->getUser($_POST['id']);
Dengan mengikuti pengesyoran ini, ia adalah mungkin untuk mengakses sambungan MySQLi dari kelas lain dengan berkesan dan tanpa ralat.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengakses Sambungan MySQLi dengan Benar daripada Kelas Berasingan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Kurangkan penggunaan memori MySQL di Docker

Bagaimana anda mengubah jadual di MySQL menggunakan pernyataan Alter Table?

Cara menyelesaikan masalah MySQL tidak dapat membuka perpustakaan bersama

Apa itu SQLite? Gambaran Keseluruhan Komprehensif

Jalankan MySQL di Linux (dengan/tanpa bekas podman dengan phpmyadmin)

Menjalankan Pelbagai Versi MySQL di MacOS: Panduan Langkah demi Langkah

Bagaimanakah saya menjamin MySQL terhadap kelemahan biasa (suntikan SQL, serangan kekerasan)?

Bagaimana saya mengkonfigurasi penyulitan SSL/TLS untuk sambungan MySQL?
