Mengapakah skrip PHP saya gagal mencipta fail apabila melaksanakan pertanyaan khusus yang mengembalikan \'status jadual tidak diketahui: TABLE_TYPE\'?

Susan Sarandon
Lepaskan: 2024-10-31 16:31:02
asal
470 orang telah melayarinya

Why does my PHP script fail to create a file when executing a specific query that returns

Fail PHP tidak dapat melaksanakan sebahagian daripada kod

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'.

Menjejaki Masalah

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.

Cadangan Penyelesaian

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Contoh Kod Kemas Kini

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!