ホームページ  >  記事  >  バックエンド開発  >  PHP の異なるクラス間で MySQLi 接続を共有するにはどうすればよいですか?

PHP の異なるクラス間で MySQLi 接続を共有するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-25 20:32:29417ブラウズ

How to Share a MySQLi Connection Between Different Classes in PHP?

クラスでの MySQLi の使用: トラブルシューティング ガイド

異なるクラスから MySQLi を使用するのは難しい場合がありますが、心配する必要はありません。発生した問題を詳しく調べて、解決策を提供しましょう。

問題: 内部サーバー エラー 500

  • 原因: を試みていますDatabase オブジェクトを別のクラス (MyAPI) で作成した後、その conn プロパティにアクセスするには。

解決策: MyAPI コンストラクター内で Database オブジェクトを初期化し、それをデータベース接続を必要とする他の関数へのパラメータ。これにより、接続を共有するすべてのクラスが同じインスタンスへの直接参照を持つことが保証されます。

例:

<code class="php">// myapi.php
class MyAPI {
    private $db;

    public function __construct($db) {
        $this->db = $db;
    }

    public function getUser($id) {
        $result = mysqli_query($this->db->conn, "SELECT * FROM users WHERE id='$id'");
        return mysqli_fetch_assoc($result);
    }
}

// app.php
// Initialize database once
$db = new mysqli(...);

// Create MyAPI instance with database reference
$api = new MyAPI($db);

// Use MyAPI to access user information
$user = $api->getUser(1);</code>

追加の考慮事項:

  • データベースから User を拡張するのは必要ありません。
  • 単一の mysqli インスタンスを直接作成し、それを必要とするクラスに渡します。
  • 次の場合は準備済みステートメントを使用します。セキュリティとパフォーマンスが向上します。
  • データベース接続パラメータが正しく、データベースにアクセスできることを確認してください。

これらの手順に従うことで、さまざまなクラスから MySQLi を正常に使用できるようになります。 PHP.

以上がPHP の異なるクラス間で MySQLi 接続を共有するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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