Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Berikut ialah beberapa pilihan tajuk, dengan mengingati format soalan dan fokus pada isu MySQLi: **Terus dan Ringkas:** * **Mengapa Saya Tidak Boleh Mengakses Sambungan MySQLi Saya daripada Kelas Berasingan?** * **MyS

Berikut ialah beberapa pilihan tajuk, dengan mengingati format soalan dan fokus pada isu MySQLi: **Terus dan Ringkas:** * **Mengapa Saya Tidak Boleh Mengakses Sambungan MySQLi Saya daripada Kelas Berasingan?** * **MyS

Barbara Streisand
Barbara Streisandasal
2024-10-25 12:52:30487semak imbas

Here are a few title options, keeping in mind the question format and focus on the MySQLi issue:

**Direct and Concise:**

* **Why Can't I Access My MySQLi Connection from a Separate Class?**
* **MySQLi Connection Issues: Accessing from a Different Class

Cara Menggunakan MySQLi daripada Kelas Berasingan dalam PHP

Pengenalan

Naik taraf daripada PHP 5.6 hingga 7.0 memerlukan pertukaran daripada MySQL kepada MySQLi, yang mungkin mengganggu persediaan sedia ada. Artikel ini menangani masalah yang dihadapi apabila cuba mengakses sambungan MySQLi daripada kelas yang berasingan.

Masalah

Seorang pengaturcara cuba mengakses sambungan MySQLi yang dibuat dalam kelas pangkalan data daripada kelas API, menghadapi ralat pelayan dalaman (500) semasa memanggil sambungan. Walau bagaimanapun, penyambungan terus dalam kelas API telah menyelesaikan isu.

Penyelesaian

Beberapa perubahan yang disyorkan boleh membetulkan masalah:

  • Hapuskan Kelas Pangkalan Data: Kelas pangkalan data adalah berlebihan kerana ia tidak mempunyai fungsi.
  • Buat Satu Instance MySQLi: Wujudkan satu contoh MySQLi menggunakan kelas mysqli asli.
  • Luluskan Contoh sebagai Parameter: Suntikan tika MySQLi sebagai parameter pembina ke dalam kelas yang memerlukan sambungan pangkalan data.

Kod Contoh:

pangkalan data.php:

<code class="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">class MyAPI
{
    protected $db;

    public function __construct($db, $request_uri, $postData, $origin)
    {
        $this->db = $db;
    }
}</code>

app.php:

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

$api = new MyAPI($db, $request_uri, $postData, $origin);</code>

Atas ialah kandungan terperinci Berikut ialah beberapa pilihan tajuk, dengan mengingati format soalan dan fokus pada isu MySQLi: **Terus dan Ringkas:** * **Mengapa Saya Tidak Boleh Mengakses Sambungan MySQLi Saya daripada Kelas Berasingan?** * **MyS. 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