ホームページ >データベース >mysql チュートリアル >異なる PHP クラス間で MySQLi 接続を適切に使用するにはどうすればよいですか?

異なる PHP クラス間で MySQLi 接続を適切に使用するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-30 06:26:10640ブラウズ

How to Properly Use MySQLi Connections Across Different PHP Classes?

PHP の別のクラスから MySQLi を使用する

PHP 5.6 から 7.0 にアップグレードする場合、MySQL から MySQLi にアップデートする必要があります。ただし、これによりセットアップの問題が発生する場合があります。

問題:

PHP 7.0 および MySQLi にアップグレードした後、$this->db を使用してデータベース接続にアクセスしようとすると->conn を実行すると、クラス内で直接データベース接続を作成した場合でも、内部サーバー エラー 500 が発生します。

解決策:

このエラーは、いくつかの悪い習慣によって引き起こされます:

  • データベースからのクラスの拡張が正しくありません。
  • Database クラス自体は何も提供しないため役に立ちません。

問題を解決するには:

  1. Database クラスを削除します。
  2. プレーンな mysqli から単一の $db インスタンスを作成します。
  3. データベースを必要とするクラスにこのインスタンスをコンストラクター パラメーターとして渡しますconnection.

コード例:

// database.php
$db = new mysqli("localhost", "DBUserName", "UserPassword", "SelectedDB");
$db->set_charset('utf8mb4');
// myapi.php
class MyAPI
{
    protected $db;

    public function __construct($db, $request_uri, $postData, $origin)
    {
        $this->db = $db;
    }
    // ... (rest of the class omitted for brevity)
}
// app.php
require 'vendor/autoload.php'; // assuming autoloading is set up

$api = new MyAPI($db, $request_uri, $postData, $origin);
$user = $api->getUser($_POST['id']);

これらのガイドラインに従うことで、PHP の他のクラスから MySQLi を正常に使用できます。 .

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

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