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