首頁  >  文章  >  後端開發  >  如何在 PHP 7.0 中從外部類別存取 MySQLi?

如何在 PHP 7.0 中從外部類別存取 MySQLi?

Susan Sarandon
Susan Sarandon原創
2024-10-26 08:21:30155瀏覽

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

從PHP 的外部類別存取MySQLi

問題:

問題:

從PHP 升級後從5.6 到7.0,使用MySQL 和MyAPI 類別的現有設定遇到了問題。具體來說,從 MyAPI 類別存取資料庫連線會導致 500 內部伺服器錯誤。

解決方案:
  1. 有幾種做法會導致此錯誤:
  2. 避免繼承:從資料庫類別擴充MyAPI 是多餘且不必要的。
  3. 刪除冗餘資料庫類別:資料庫類別沒有實際用途目的,因為它主要建立一個連接,這可以透過普通 mysqli 類別輕鬆實現。

建立集中式資料庫實例: 建立資料庫連線的單一全域實例並將其傳遞到每個需要資料庫存取的類別。

程式碼結構:
  • 建立三個檔案:
  • 資料庫。 php:包含資料庫連線邏輯。
  • myapi.php:定義具有資料庫連線依賴注入的 MyAPI 類別。

app.php:包含資料庫連線邏輯。 php:作為入口點並實例化 MyAPI 類,傳遞資料庫連線。

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

database.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>

myapi.php:

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

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

透過遵循這些準則並將資料庫關注點與類別功能分開,可以有效解決外部類別存取MySQLi的問題。

以上是如何在 PHP 7.0 中從外部類別存取 MySQLi?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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