Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengakses MySQLi dari Kelas Luaran dalam PHP 7.0?

Bagaimana untuk Mengakses MySQLi dari Kelas Luaran dalam PHP 7.0?

Susan Sarandon
Susan Sarandonasal
2024-10-26 08:21:30155semak imbas

How to Access MySQLi from an External Class in PHP 7.0?

Mengakses MySQLi daripada Kelas Luaran dalam PHP

Masalah:

Selepas menaik taraf daripada PHP 5.6 hingga 7.0, persediaan sedia ada yang menggunakan kedua-dua kelas MySQL dan MyAPI telah menghadapi masalah. Khususnya, mengakses sambungan pangkalan data daripada kelas MyAPI mengakibatkan ralat pelayan dalaman 500.

Penyelesaian:

Terdapat beberapa amalan yang menyumbang kepada ralat ini:

  1. Elakkan Pewarisan: Memanjangkan MyAPI daripada kelas Pangkalan Data adalah berlebihan dan tidak perlu.
  2. Alih Keluar Kelas Pangkalan Data Berlebihan: Kelas Pangkalan Data tidak berfungsi secara praktikal tujuan kerana ia terutamanya mewujudkan sambungan, yang boleh dicapai dengan mudah melalui kelas mysqli vanilla.
  3. Buat Contoh Pangkalan Data Berpusat: Wujudkan satu contoh global sambungan pangkalan data dan luluskannya kepada setiap kelas yang memerlukan akses pangkalan data.

Struktur Kod:

Buat tiga fail:

  • pangkalan data. php: Mengandungi logik sambungan pangkalan data.
  • myapi.php: Mentakrifkan kelas MyAPI dengan suntikan kebergantungan untuk sambungan pangkalan data.
  • apl. php: Bertindak sebagai titik masuk dan membuat instantiate kelas MyAPI, melepasi sambungan pangkalan data.

pangkalan data.php:

<code class="php"><?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$db = new mysqli("localhost", "DBUserName", "UserPassword", "SelectedDB");
$db->set_charset('utf8mb4');</code>

myapi.php:

<code class="php"><?php
class MyAPI
{
    protected $db;

    public function __construct($db)
    {
        $this->db = $db;
    }

    public function getUser($id)
    {
        // Define SQL query and subsequent operations to fetch user data.
    }
}</code>

app.php:

<code class="php"><?php
require 'database.php';
require 'myapi.php';

$api = new MyAPI($db);
$user = $api->getUser($_POST['id']);</code>

Dengan mengikuti garis panduan ini dan memisahkan kebimbangan pangkalan data daripada fungsi kelas, isu mengakses MySQLi daripada kelas luaran boleh diselesaikan dengan berkesan.

Atas ialah kandungan terperinci Bagaimana untuk Mengakses MySQLi dari Kelas Luaran dalam PHP 7.0?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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