ホームページ > データベース > mysql チュートリアル > PHP の別のクラスから MySQLi 接続に適切にアクセスするにはどうすればよいですか?

PHP の別のクラスから MySQLi 接続に適切にアクセスするにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-10 16:22:09
オリジナル
263 人が閲覧しました

How Can I Properly Access a MySQLi Connection from a Separate Class in PHP?

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

問題の説明:

質問は支援を求めています別のクラス内から別のクラスで確立された MySQLi 接続にアクセスする場合。接続プロパティを持つデータベース クラスが作成され、API クラスがこの接続へのアクセスを試みます。ただし、接続にアクセスしようとすると、内部サーバー エラーが発生します。

回答:

悪い習慣と推奨事項:

提供されたコードには、エラー:

  • データベース クラスからクラス (ユーザー) を拡張することは不適切です。
  • データベース クラスには重要な機能が欠けています。

次のことを推奨します。 :

  • 意味のないデータベース クラスを削除します。目的。
  • バニラ mysqli から単一の $db インスタンスを作成します。
  • このインスタンスをデータベース接続を必要とするクラスにコンストラクター引数として渡します。

リファクタリング済みコード:

database.php:

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$db = new mysqli("localhost", "DBUserName", "UserPassword", "SelectedDB");
$db->set_charset('utf8mb4');
ログイン後にコピー

m yapi.php:

<?php
class MyAPI
{
    protected $db;

    public function __construct($db, $request_uri, $postData, $origin)
    {
        $this->db = $db;
    }

    public function getUser($id)
    {
        $sql = "SELECT * FROM users where>
ログイン後にコピー

app.php:

<?php
# require_once 'Database.php';
# require_once 'myapi.php';
require 'vendor/autoload.php'; // autoloading is essential

$api = new MyAPI($db, $request_uri, $postData, $origin);
$user = $api->getUser($_POST['id']);
ログイン後にコピー

これらの推奨事項に従うと、別のクラスから効果的にエラーなしで MySQLi 接続にアクセスできます。

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

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