Fungsi PHP Berjuang untuk Melaksanakan Sebahagian
Masalah:
Fungsi PHP yang bertanggungjawab untuk mengendalikan permintaan pelayan menghadapi masalah apabila ia gagal memasuki wilayah kod tertentu. Fungsi ini bermula dengan mewujudkan sambungan pangkalan data dan menulis data ke fail. Pertanyaan seterusnya cuba mendapatkan data tetapi mengakibatkan ralat "status jadual tidak diketahui: TABLE_TYPE."
Penyelesaian:
Pemfaktoran Semula Kod dan Abstraksi Pangkalan Data:
Untuk mengurangkan kerumitan kod dan meningkatkan pengendalian ralat, kod asal ialah difaktorkan semula. Pertama, fungsi berasingan dicipta untuk menulis fail, memudahkan operasi fail.
Kedua, sambungan pangkalan data dan pertanyaan diabstraksikan ke dalam kelas MySQL yang berasingan. Ini membolehkan akses pangkalan data yang lebih fleksibel dan pengendalian ralat di luar fungsi utama.
Contoh:
Fungsi Penulisan Fail:
function file_put($number, $data) { $path = sprintf("C:/temp/wamp/www/file%d.txt", $number); file_put_contents($path, $data); }
Pangkalan data Kelas:
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 } }
Fungsi Semakan Semakan:
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); } } }
Dengan melaksanakan pemfaktoran semula kod dan abstraksi pangkalan data, fungsi asal dipermudahkan, pengendalian ralat adalah dipertingkatkan dan keupayaan untuk melaksanakan semua kawasan kod dipulihkan.
Atas ialah kandungan terperinci Mengapa Fungsi PHP Saya Gagal Melaksanakan Bahagian Kod Tertentu, Membawa kepada Ralat 'status jadual tidak diketahui: TABLE_TYPE'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!