「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > PHP の異なるクラス間で MySQLi 接続を共有するにはどうすればよいですか?

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

2024 年 11 月 2 日に公開
ブラウズ:980

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

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

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

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

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

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

Example:

// 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);

追加の考慮事項:

  • 必要がないため、データベースからユーザーを拡張することは避けてください。
  • 単一の mysqli インスタンスを直接作成し、それを必要とするクラスに渡します。
  • セキュリティとパフォーマンスを向上させるためにプリペアド ステートメントを使用します。
  • データベース接続パラメータが正しく、データベースが正しいことを確認します。アクセス可能。

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

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3