비객체에서 prepare() 멤버 함수 호출: PHP 도움말
문제:
호출을 시도할 때 "비객체에서 prepare() 멤버 함수 호출" 오류가 발생합니다. 존재하지 않는 객체에 대한 메서드입니다.
원인:
제공된 코드 조각은 $DBH 변수를 새로운 MySQLi 연결 객체로 초기화하지만 전달에 실패합니다. 매개변수로 사용하거나 selectInfo() 함수 내에서 전역 변수로 선언합니다. 결과적으로 함수가 객체에 액세스할 수 없으며 오류가 발생합니다.
해결책:
이 문제를 해결하려면 다음 옵션을 고려하십시오.
글로벌 사용 키워드:
function selectInfo($limit, $offset){ global $DBH; $stmt = $DBH->prepare("SELECT * FROM information LIMIT ?,?");
연결 전달 매개변수:
function selectInfo(MySQLi $DBH, $limit, $offset){ $stmt = $DBH->prepare("SELECT * FROM information LIMIT ?,?");
데이터베이스를 가져오는 함수 만들기 연결:
function getDBH(){ static $DBH = null; if (is_null($DBH)) { $DBH = new mysqli(...); } return $DBH; }
function selectInfo($limit, $offset){
$DBH = getDBH(); $stmt = $DBH->prepare("SELECT * FROM information LIMIT ?,?");
}
데이터베이스 래퍼 생성 수업:
class Database { private $conn; public function __construct(){ $this->conn = new mysqli(...); } public function selectInfo($limit, $offset){ $stmt = $this->conn->prepare("SELECT * FROM information LIMIT ?,?"); }
미리 구축된 라이브러리 또는 프레임워크 사용:
위 내용은 PHP에서 \'비객체에 대한 prepare() 멤버 함수 호출\'이 발생하는 이유는 무엇이며 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!