Gangguan Pelaksanaan Fail PHP
Dalam usaha pengekodan baru-baru ini, fungsi PHP yang digunakan untuk mengendalikan permintaan daripada apl Android menghadapi isu di mana bahagian kod tidak dilaksanakan. Secara khususnya, program ini tidak dapat mengakses bahagian tertentu di mana fail sedang dibuat.
Setelah disiasat, fail penyahpepijatan yang dibuat oleh pembangun mendedahkan bahawa kod dalam bahagian itu tidak dimasukkan. Ini mendorong analisis kod yang lebih mendalam, memfokuskan pada pertanyaan dan operasi pangkalan data.
Menyahkod Ralat
Semasa melaksanakan pertanyaan, atur cara sekali-sekala menerima mesej ralat menyatakan "status jadual tidak diketahui: TABLE_TYPE." Mesej mengelirukan ini menunjukkan isu dengan sambungan pangkalan data.
Pemfaktoran Semula untuk Kecekapan
Pendekatan awal menulis fungsi besar dengan berbilang baris khusus untuk penulisan fail dan pangkalan data manipulasi terbukti tidak cekap dan terdedah kepada kesilapan. Untuk menangani perkara ini, pembangun memilih reka bentuk yang lebih modular.
Dua fungsi baharu telah diperkenalkan: file_put(), yang mengendalikan penulisan pada fail dan checkin(), yang mengendalikan operasi pangkalan data. Membahagikan kod dengan cara ini dibenarkan untuk penyahpepijatan dan pemfaktoran semula yang lebih mudah.
Interaksi Pangkalan Data Diperhalusi
Interaksi pangkalan data telah dibungkus dalam kelas MySql, memberikan ralat yang lebih berstruktur dan antara muka tahan terhadap pangkalan data. Kelas mengendalikan penubuhan sambungan, pelaksanaan pertanyaan dan pengendalian ralat, memudahkan operasi pangkalan data dalam fungsi checkin().
Contoh Kod Diubahsuai
Kod yang disemak kini menggunakan fail_put() dan fungsi MySql baharu, menghasilkan struktur yang lebih teratur dan terurus.
<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>
Kesimpulan
Dengan memfaktorkan semula kod, mengendalikan interaksi pangkalan data melalui kelas, dan membahagikan tanggungjawab antara pelbagai fungsi, masalah bahagian kod yang tidak dilaksanakan telah diselesaikan. Kod yang terhasil adalah lebih modular, lebih mudah untuk nyahpepijat dan teguh.
Atas ialah kandungan terperinci Mengapa Perlaksanaan Fail PHP Saya Terganggu dan Bagaimana Saya Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!