質問の形式を念頭に置き、MySQLi の問題に焦点を当てたタイトルのオプションをいくつか示します。 **直接的かつ簡潔:** * **別のクラスから MySQLi 接続にアクセスできないのはなぜですか?** * **MyS

Barbara Streisand
リリース: 2024-10-25 12:52:30
オリジナル
486 人が閲覧しました

Here are a few title options, keeping in mind the question format and focus on the MySQLi issue:

**Direct and Concise:**

* **Why Can't I Access My MySQLi Connection from a Separate Class?**
* **MySQLi Connection Issues: Accessing from a Different Class

PHP の別のクラスから MySQLi を利用する方法

はじめに

PHP からのアップグレード5.6 から 7.0 に移行するには、MySQL から MySQLi に切り替える必要があり、既存のセットアップが中断される可能性があります。この記事では、別のクラスから MySQLi 接続にアクセスしようとしたときに発生した問題について説明します。

問題

プログラマがデータベース クラスで作成された MySQLi 接続にアクセスしようとしましたAPI クラスから接続を呼び出すときに内部サーバー エラー (500) が発生しました。ただし、API クラス内で直接接続することで問題は解決しました。

解決策

推奨されるいくつかの変更により問題を修正できます。

  • データベース クラスの削除: データベース クラスは機能がないため冗長です。
  • 単一の MySQLi インスタンスの作成: ネイティブ mysqli クラスを使用して単一の MySQLi インスタンスを確立します。
  • インスタンスをパラメータとして渡す: MySQLi インスタンスをコンストラクタ パラメータとしてデータベース接続を必要とするクラスに挿入します。

コード例:

database.php:

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

myapi.php:

<code class="php">class MyAPI
{
    protected $db;

    public function __construct($db, $request_uri, $postData, $origin)
    {
        $this->db = $db;
    }
}</code>
ログイン後にコピー

app.php:

<code class="php">require 'database.php';
require 'myapi.php';

$api = new MyAPI($db, $request_uri, $postData, $origin);</code>
ログイン後にコピー

以上が質問の形式を念頭に置き、MySQLi の問題に焦点を当てたタイトルのオプションをいくつか示します。 **直接的かつ簡潔:** * **別のクラスから MySQLi 接続にアクセスできないのはなぜですか?** * **MySの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!