PHP의 별도 클래스에서 MySQLi에 액세스하는 방법
별도의 클래스에서 데이터베이스 연결을 설정하려고 할 때 오류가 발생했습니다. MySQLi를 사용하여 PHP에서. 연결 개체에 액세스하려고 하면 "내부 서버 오류 500" 오류가 발생하며 이는 코드나 구성에 문제가 있음을 나타냅니다.
이 문제를 해결하려면 코드를 분석하고 핵심 사항을 파악해 보겠습니다.
데이터베이스 클래스:
데이터베이스 클래스에는 서버 이름, 사용자 이름, 비밀번호, 데이터베이스 이름 등 데이터베이스에 연결하는 데 필요한 정보가 포함되어 있습니다.
API 클래스:
API 클래스 내에서 new Database()를 사용하여 $db 속성을 초기화합니다. 이는 데이터베이스 클래스의 __construct 메소드 내에서 생성된 연결과 다른 새로운 데이터베이스 연결 개체를 설정합니다.
함수 호출:
그런 다음 다음을 시도하고 있습니다. MyAPI 클래스 내에서 정의되지 않은 $this->db->conn 개체를 사용하여 쿼리를 실행합니다. 이는 $conn 속성이 데이터베이스 클래스 내에서만 정의되기 때문입니다.
해결책:
MyAPI 클래스 내에서 데이터베이스 연결 개체에 액세스하려면 다음을 통과해야 합니다. 데이터베이스의 새 인스턴스를 생성할 때 생성자 인수로 사용됩니다.
수정된 코드는 다음과 같습니다.
Database.php:
<code class="php">class Database { private $conn; public function __construct() { $this->conn = new mysqli(...connection details...); } public function getConn() { return $this->conn; } }</code>
MyAPI.php:
<code class="php">class MyAPI { private $db; public function __construct($db) { $this->db = $db; } public function getUser($id) { $sql = ...query...; $result = mysqli_query($this->db->getConn(), $sql); return mysqli_fetch_assoc($result); } }</code>
app.php:
<code class="php">$db = new Database(); $api = new MyAPI($db); $user = $api->getUser($_POST['id']);</code>
이 접근 방식을 사용하면 MyAPI 내에서 데이터베이스 연결 개체에 액세스할 수 있습니다. 클래스를 사용하면 쿼리를 실행하고 데이터를 성공적으로 검색할 수 있습니다.
위 내용은 PHP의 별도 클래스에서 MySQLi 연결에 액세스할 때 \'500 내부 서버 오류\'가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!