>백엔드 개발 >PHP 튜토리얼 >다음은 질문 형식을 염두에 두고 MySQLi 문제에 초점을 맞춘 몇 가지 제목 옵션입니다. **직접적이고 간결함:** * **별도의 클래스에서 내 MySQLi 연결에 액세스할 수 없는 이유는 무엇입니까?** * **MyS

다음은 질문 형식을 염두에 두고 MySQLi 문제에 초점을 맞춘 몇 가지 제목 옵션입니다. **직접적이고 간결함:** * **별도의 클래스에서 내 MySQLi 연결에 액세스할 수 없는 이유는 무엇입니까?** * **MyS

Barbara Streisand
Barbara Streisand원래의
2024-10-25 12:52:30557검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.