PHP 파일 실행이 중단된 이유는 무엇이며 어떻게 해결했습니까?

DDD
풀어 주다: 2024-10-31 18:57:29
원래의
476명이 탐색했습니다.

Why Was My PHP File Execution Interrupted and How Did I Fix It?

PHP 파일 실행 중단

최근 코딩 작업에서 Android 앱의 요청을 처리하는 데 사용되는 PHP 함수에서 특정 문제가 발생했습니다. 코드의 일부가 실행되지 않았습니다. 특히 파일이 생성되는 특정 부분에 프로그램이 접근할 수 없었다.

조사 결과 개발자가 생성한 디버깅 파일을 살펴본 결과, 해당 부분 내의 코드가 입력되지 않은 것으로 드러났다. 이로 인해 쿼리 및 데이터베이스 작업에 초점을 맞춰 코드에 대한 심층적인 분석이 이루어졌습니다.

오류 디코딩

쿼리를 실행하는 동안 프로그램에서 가끔 오류 메시지가 수신되었습니다. "알 수 없는 테이블 상태: TABLE_TYPE"이라고 표시됩니다. 이 혼란스러운 메시지는 데이터베이스 연결 문제를 나타냅니다.

효율성을 위한 리팩토링

파일 쓰기 및 데이터베이스 전용으로 여러 줄이 포함된 대규모 함수를 작성하는 초기 접근 방식 조작은 비효율적이며 오류가 발생하기 쉬운 것으로 나타났습니다. 이 문제를 해결하기 위해 개발자는 보다 모듈화된 디자인을 선택했습니다.

파일 쓰기를 처리하는 file_put()와 데이터베이스 작업을 처리하는 checkin()이라는 두 가지 새로운 함수가 도입되었습니다. 이런 방식으로 코드를 나누면 디버깅과 리팩토링이 더 쉬워졌습니다.

정제된 데이터베이스 상호 작용

데이터베이스 상호 작용은 MySql 클래스로 래핑되어 보다 구조화된 오류를 제공합니다. 데이터베이스에 대한 저항성 인터페이스. 클래스는 연결 설정, 쿼리 실행 및 오류 처리를 처리하여 checkin() 함수 내에서 데이터베이스 작업을 단순화했습니다.

개편된 코드 예제

수정된 코드는 이제 다음을 활용합니다. 새로운 file_put() 및 MySql 함수를 사용하여 구조가 더욱 체계화되고 관리하기 쉬워졌습니다.

<code class="php">function file_put($number, $data)
{
    $path = sprintf("C:/temp/wamp/www/file%d.txt", $number);
    file_put_contents($path, $data);
}

function checkin(MySql $DB, $TechID, $ClientID, $SiteID)
{
    $query = sprintf("SELECT `Type` FROM `Log` WHERE `TechID` = '%d' ORDER BY LogTime DESC LIMIT 1", $TechID);
    file_put(5, $query);

    $result1 = $DB->query("SELECT COUNT(*) FROM Log");    
    $result2 = $DB->query($query);

    foreach ($result1 as $row1) {
        list($count) = $row1;
        $data = "ClientID:$ClientID TechID:$TechID SiteID:$SiteID Count:$count";
        file_put(3, $data);
        foreach ($result2 as $row2) {
            file_put(4, $data);
        }
    }
}

$config = array(
    'server' => 'localhost',
    'name' => 'root',
    'password' => '',
    'db' => 'test',
);
$db = new MySql($config);

checkin($db, 1, 2, 3, 4);</code>
로그인 후 복사

결론

코드를 리팩터링하여 클래스를 생성하고, 여러 기능에 책임을 나누어 코드 섹션이 실행되지 않는 문제를 해결했습니다. 결과 코드는 더욱 모듈화되고 디버그하기 쉽고 강력해졌습니다.

위 내용은 PHP 파일 실행이 중단된 이유는 무엇이며 어떻게 해결했습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!