문제

PHP에서 수행하는 새로운 프로젝트의 경우 데이터베이스에 연결하고 쿼리를 수행하기 위해 SQLMethods 클래스를 만들었습니다. 오늘 밤은 실제로 테스트해야 할 첫날 (일주일 정도 전에 썼고 잊어 버렸습니다)과 예기치 않은 오류가 발생했습니다. ExecuteQuery () 함수를 호출 할 때 데이터베이스 I를 사용하지 않을 것입니다. 생성자에서 선택됩니다.

생성자 :

    public function SQLMethods() {
        $SQLConnection = mysql_connect($SQLDBAddress, $SQLUserName, $SQLPassword);

        if (!$SQLConnection) {
            die('Could not connect: ' . mysql_error());
        }

        mysql_select_db($SQLDB, $SQLConnection);
    }

문제의 기능 :

    public function ExecuteQuery($Query) {
        mysql_query($Query, $SQLConnection) or die('Could not perform query: ' . mysql_error());
    }

누구든지 문제가 무엇인지 알 수 있습니까? 생성자가 완료된 후 연결이 닫히나요?

도움이 되었습니까?

해결책

수업에서 $ sqlconnection을 선언해야하며,이를

 $this->SQLConnection

단순히 $ sqlconnection이 아닙니다.

다른 팁

$SQLConnection 안에 존재하지 않습니다 ExecuteQuery 방법.

매개 변수로 직접 전달할 수 있습니다. ExecuteQuery, 또는 추가하십시오 sqlConnection 생성자에 설정되어 다음과 같이 액세스하는 클래스 속성 $this->sqlConnection 수업 방법 내부.

변수 $SQLConnection ExecuteQuery() 사용하려는 것은 다른 범위 내에서 생성됩니다. (그만큼 SQLMethods 기능).

PHP 스크립트가 작업을 수행했거나 직접 닫으면 연결이 닫힙니다 (해당 스크립트 내에서 연결이 이루어지면)

당신은 그것을 건너 뛰어야합니다 $SQLConnection 내부의 변수 ExecuteQuery php.net 문서에서 언급 한 바와 같이

링크 식별자가 지정되지 않은 경우 마지막 링크가 mysql_connect() 가정됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top