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
Lepaskan: 2024-10-25 12:52:30
asal
486 orang telah melayarinya

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>
Salin selepas log masuk

myapi.php:

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

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

app.php:

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

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

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!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!