首頁 >資料庫 >mysql教程 >如何在不同的 PHP 類別之間正確使用 MySQLi 連線?

如何在不同的 PHP 類別之間正確使用 MySQLi 連線?

Patricia Arquette
Patricia Arquette原創
2024-11-30 06:26:10640瀏覽

How to Properly Use MySQLi Connections Across Different PHP Classes?

在 PHP 中使用另一個類別的 MySQLi

從 PHP 5.6 升級到 7.0 時,需要從 MySQL 更新到 MySQLi。但是,這有時會導致設定問題。

問題:

升級到PHP 7.0 和MySQLi 後,嘗試使用$this->db 存取資料庫連線->conn 會導致內部伺服器錯誤500,即使直接在類別中建立資料庫連接也是如此有效。

解決方案:

該錯誤是由幾種不良做法引起的:

  • 從資料庫擴展類別是不正確的。
  • Database 類別本身沒有用,因為它不提供任何

要解決此問題:

  1. 消除 Database 類別。
  2. 從普通 mysqli 建立單一 $db 實例。
  3. 將此實例作為建構子參數傳遞給任何需要資料庫的類別

範例程式碼:

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

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

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

透過遵循這些指南,您可以在PHP 中的其他類別中成功使用MySQLi .

以上是如何在不同的 PHP 類別之間正確使用 MySQLi 連線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn