ホームページ  >  記事  >  バックエンド開発  >  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. 継承の回避: データベース クラスからの 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。