Rumah > Artikel > pembangunan bahagian belakang > Mengapakah skrip PHP saya gagal mencipta fail apabila melaksanakan pertanyaan khusus yang mengembalikan \"status jadual tidak diketahui: TABLE_TYPE\"?
Skrip PHP yang disediakan berfungsi sebagai fungsi untuk mengendalikan permintaan daftar masuk daripada aplikasi Android dan berinteraksi dengan pangkalan data. Walau bagaimanapun, atur cara menghadapi masalah di mana ia tidak dapat melaksanakan bahagian kod tertentu, yang menghalangnya daripada mencipta fail bernama 'file4.txt'.
Pembangun mengenal pasti bahawa skrip hanya gagal mencipta fail semasa melaksanakan pertanyaan $query. Selepas siasatan lanjut, didapati bahawa MySQL bertindak balas dengan mesej "status jadual tidak diketahui: TABLE_TYPE" semasa cuba melaksanakan pertanyaan. Tingkah laku ini tidak konsisten, kerana fungsi berfungsi dengan betul kadangkala tetapi tidak pada yang lain.
Untuk menyelesaikan isu ini, pembangun mencadangkan pendekatan bahagi dan takluk dengan memecahkan fungsi kepada bahagian yang lebih kecil. Khususnya, bahagian penulisan fail telah difaktorkan ke dalam fungsi yang berasingan:
<code class="php">function file_put($number, $data) { $path = sprintf("C:/temp/wamp/www/file%d.txt", $number); file_put_contents($path, $data); }</code>
Ini memudahkan kod dan memudahkan untuk nyahpepijat.
Selain itu, pembangun mencadangkan penyusunan semula operasi pangkalan data menjadi kelas berasingan yang dipanggil MySql. Ini akan mengasingkan pengendalian ralat dan menyediakan cara yang lebih cekap untuk menyambung ke pangkalan data dan mendapatkan semula data:
<code class="php">class MySql { // ... (Database connection and query methods) ... }</code>
Menggabungkan cadangan penyelesaian, fungsi checkin() yang dikemas kini menjadi lebih bersih dan lebih mudah untuk diselenggara:
<code class="php">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); } } }</code>
Contoh kod penuh, termasuk kelas MySql, telah disediakan, menunjukkan cara membahagikan dan menakluki masalah untuk mencapai lebih penyelesaian yang boleh diurus dan cekap.
Atas ialah kandungan terperinci Mengapakah skrip PHP saya gagal mencipta fail apabila melaksanakan pertanyaan khusus yang mengembalikan \"status jadual tidak diketahui: TABLE_TYPE\"?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!