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

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

Patricia Arquette
リリース: 2024-11-30 06:26:10
オリジナル
638 人が閲覧しました

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート