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

Susan Sarandon
發布: 2024-10-26 08:21:30
原創
154 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!