Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mengakses Sambungan Pangkalan Data MySQLi dengan Benar daripada Kelas PHP yang Berbeza?

Bagaimanakah Saya Boleh Mengakses Sambungan Pangkalan Data MySQLi dengan Benar daripada Kelas PHP yang Berbeza?

Mary-Kate Olsen
Lepaskan: 2024-12-18 02:29:09
asal
490 orang telah melayarinya

How Can I Properly Access a MySQLi Database Connection from Different PHP Classes?

Mengakses Sambungan MySQLi daripada Kelas Lain dalam PHP

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:

  1. Hapuskan kelas Pangkalan Data yang berlebihan. Ia tidak mempunyai tujuan khusus dan memperkenalkan kerumitan yang tidak perlu.
  2. Buat satu contoh $db daripada vanilla MySQLi. Kejadian ini akan berfungsi sebagai titik sambungan pusat untuk semua operasi pangkalan data.
  3. Paskan tika $db sebagai parameter pembina kepada setiap kelas yang memerlukan sambungan pangkalan data. Dengan mengikuti langkah-langkah ini, anda mewujudkan pangkalan kod yang lebih bersih dan boleh diselenggara. Struktur kod yang dikemas kini mungkin menyerupai:
database.php
<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$db = new mysqli("localhost", "DBUserName", "UserPassword", "SelectedDB");
$db->set_charset('utf8mb4');
Salin selepas log masuk
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>
Salin selepas log masuk
app.php
<?php
require 'vendor/autoload.php'; // autoloading is recommended

$api = new MyAPI($db, $request_uri, $postData, $origin);
$user = $api->getUser($_POST['id']);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan