Rumah > pangkalan data > tutorial mysql > Bagaimana Menggunakan Sambungan MySQLi Dengan Betul Merentasi Kelas PHP Berbeza?

Bagaimana Menggunakan Sambungan MySQLi Dengan Betul Merentasi Kelas PHP Berbeza?

Patricia Arquette
Lepaskan: 2024-11-30 06:26:10
asal
628 orang telah melayarinya

How to Properly Use MySQLi Connections Across Different PHP Classes?

Menggunakan MySQLi daripada Kelas Lain dalam PHP

Apabila menaik taraf daripada PHP 5.6 kepada 7.0, adalah perlu untuk mengemas kini daripada MySQL kepada MySQLi. Walau bagaimanapun, ini kadangkala boleh membawa kepada isu persediaan.

Masalah:

Selepas menaik taraf kepada PHP 7.0 dan MySQLi, cuba mengakses sambungan pangkalan data menggunakan $this->db ->conn menghasilkan ralat pelayan dalaman 500, walaupun mencipta sambungan pangkalan data secara langsung dalam kelas berfungsi.

Penyelesaian:

Ralat disebabkan oleh beberapa amalan buruk:

  • Melanjutkan kelas daripada Pangkalan Data adalah tidak betul.
  • Kelas Pangkalan Data itu sendiri tidak berguna kerana ia tidak menyediakan apa-apa kefungsian.

Untuk menyelesaikan isu:

  1. Hapuskan kelas Pangkalan Data.
  2. Buat satu contoh $db daripada mysqli biasa.
  3. Paskan contoh ini sebagai parameter pembina kepada mana-mana kelas yang memerlukan pangkalan data sambungan.

Contoh Kod:

// database.php
$db = new mysqli("localhost", "DBUserName", "UserPassword", "SelectedDB");
$db->set_charset('utf8mb4');
Salin selepas log masuk
// myapi.php
class MyAPI
{
    protected $db;

    public function __construct($db, $request_uri, $postData, $origin)
    {
        $this->db = $db;
    }
    // ... (rest of the class omitted for brevity)
}
Salin selepas log masuk
// app.php
require 'vendor/autoload.php'; // assuming autoloading is set up

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

Dengan mengikuti garis panduan ini, anda boleh berjaya menggunakan MySQLi daripada kelas lain dalam PHP .

Atas ialah kandungan terperinci Bagaimana Menggunakan Sambungan MySQLi Dengan Betul Merentasi Kelas PHP 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