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. 継承の回避: データベース クラスからの MyAPI の拡張は冗長であり、不要です。
  2. 冗長なデータベース クラスの削除: データベース クラスは実用的ではありません主に接続を確立することが目的であり、バニラの mysqli クラスを介して簡単に実現できます。
  3. 集中データベース インスタンスの作成: データベース接続の単一のグローバル インスタンスを確立し、それを渡します。データベースへのアクセスを必要とする各クラスに追加します。

コード構造:

3 つのファイル:

  • データベースを作成します。 php: データベース接続ロジックが含まれています。
  • myapi.php: データベース接続の依存関係注入を含む MyAPI クラスを定義します。
  • app。 php: エントリ ポイントとして機能し、データベース接続を渡して MyAPI クラスをインスタンス化します。

database.php:

<code class="php"><?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$db = new mysqli("localhost", "DBUserName", "UserPassword", "SelectedDB");
$db->set_charset('utf8mb4');</code>
ログイン後にコピー

myapi.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>
ログイン後にコピー

app.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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!