Heim >Datenbank >MySQL-Tutorial >Warum kann meine PHP-Funktion einen bestimmten Codeabschnitt nicht ausführen, was zu der Fehlermeldung „Unbekannter Tabellenstatus: TABLE_TYPE' führt?
PHP-Funktion kann teilweise nur schwer ausgeführt werden
Problem:
Eine PHP-Funktion, die für die Verarbeitung verantwortlich ist Bei Serveranfragen tritt ein Problem auf, bei dem die Eingabe einer bestimmten Coderegion fehlschlägt. Die Funktion beginnt mit dem Herstellen einer Datenbankverbindung und dem Schreiben von Daten in Dateien. Nachfolgende Abfragen versuchen, Daten abzurufen, führen jedoch zu dem Fehler „Unbekannter Tabellenstatus: TABLE_TYPE“.
Lösung:
Code-Refactoring und Datenbankabstraktion:
Um die Komplexität des Codes zu reduzieren und die Fehlerbehandlung zu verbessern, wird der Originalcode umgestaltet. Erstens wird eine separate Funktion zum Schreiben von Dateien erstellt, wodurch Dateioperationen vereinfacht werden.
Zweitens werden die Datenbankverbindung und Abfragen in einer separaten MySQL-Klasse abstrahiert. Dies ermöglicht einen flexibleren Datenbankzugriff und eine flexiblere Fehlerbehandlung außerhalb der Hauptfunktion.
Beispiel:
Dateischreibfunktion:
function file_put($number, $data) { $path = sprintf("C:/temp/wamp/www/file%d.txt", $number); file_put_contents($path, $data); }
Datenbank Klasse:
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 } }
Überarbeitete Checkin-Funktion:
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); } } }
Durch die Implementierung von Code-Refactoring und Datenbankabstraktion wird die ursprüngliche Funktion vereinfacht und die Fehlerbehandlung vereinfacht verbessert und die Fähigkeit, alle Codebereiche auszuführen, ist wiederhergestellt.
Das obige ist der detaillierte Inhalt vonWarum kann meine PHP-Funktion einen bestimmten Codeabschnitt nicht ausführen, was zu der Fehlermeldung „Unbekannter Tabellenstatus: TABLE_TYPE' führt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!