집 >데이터 베이스 >MySQL 튜토리얼 >내 PHP 함수가 특정 코드 섹션을 실행하지 못해 '알 수 없는 테이블 상태: TABLE_TYPE' 오류가 발생하는 이유는 무엇입니까?
PHP 함수가 부분적으로 실행하기 어려움
문제:
처리를 담당하는 PHP 함수 서버 요청에서 특정 코드 영역을 입력하지 못하는 문제가 발생합니다. 이 기능은 데이터베이스 연결을 설정하고 파일에 데이터를 쓰는 것으로 시작됩니다. 후속 쿼리에서 데이터 검색을 시도하지만 "알 수 없는 테이블 상태: TABLE_TYPE" 오류가 발생합니다.
해결책:
코드 리팩토링 및 데이터베이스 추상화:
코드 복잡성을 줄이고 오류 처리를 개선하기 위해 원본 코드를 리팩터링했습니다. 첫째, 파일 쓰기를 위한 별도의 기능이 생성되어 파일 작업이 단순화됩니다.
둘째, 데이터베이스 연결 및 쿼리가 별도의 MySQL 클래스로 추상화됩니다. 이를 통해 주 기능 외부에서 보다 유연한 데이터베이스 액세스 및 오류 처리가 가능해집니다.
예:
파일 쓰기 기능:
function file_put($number, $data) { $path = sprintf("C:/temp/wamp/www/file%d.txt", $number); file_put_contents($path, $data); }
데이터베이스 클래스:
class MySql { // Properties for database connection // ... // Database connection method private function connect($server, $name, $password) { // Connect and error handling } // Database query method public function query($query) { // Establish connection if not already done // Execute query and return result } }
수정된 체크인 기능:
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); } } }
코드 리팩토링 및 데이터베이스 추상화를 구현하여 원래 기능이 단순화되고 오류 처리가 개선되었으며 모든 코드 영역 실행 기능이 복원되었습니다.
위 내용은 내 PHP 함수가 특정 코드 섹션을 실행하지 못해 '알 수 없는 테이블 상태: TABLE_TYPE' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!