Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa fetchAll() menyebabkan \"SQLSTATE[HY000]: General Error\" dalam PDO apabila mengemas kini pangkalan data?

Mengapa fetchAll() menyebabkan \"SQLSTATE[HY000]: General Error\" dalam PDO apabila mengemas kini pangkalan data?

Patricia Arquette
Patricia Arquetteasal
2024-10-23 00:53:30956semak imbas

Why is fetchAll() causing a

Ralat PDO: "SQLSTATE[HY000]: Ralat Umum" Semasa Mengemas Kini Pangkalan Data

Walaupun mesej ralat, kod anda nampaknya berjaya mengemas kini pangkalan data. Isunya terletak pada penggunaan fetchAll() selepas kemas kini atau pertanyaan sisip.

Memahami Ralat

Mesej ralat "SQLSTATE[HY000]: Ralat umum" memberikan sedikit maklumat tentang sebenar masalah. Ia biasanya menunjukkan isu generik dengan pertanyaan pangkalan data.

Mengenal pasti Masalah

Dalam kod anda, selepas melaksanakan pertanyaan kemas kini, anda menggunakan fetchAll() untuk mendapatkan semula keputusan. Kaedah ini biasanya digunakan dengan pertanyaan terpilih, di mana ia mendapatkan semula semua baris yang dikembalikan oleh pertanyaan. Walau bagaimanapun, untuk pertanyaan sisipan atau kemas kini, fetchAll() tidak diperlukan dan boleh menyebabkan ralat.

Penyelesaian

Untuk menyelesaikan ralat, cuma alih keluar pernyataan fetchAll():

<code class="php">try {
    $stmt = $pdo->prepare("UPDATE $page SET $section = :new_content WHERE $section = '$old_content'");
    $stmt->execute(array(
        'new_content' => $new_content
    ));
    echo "Database updated!";
}
catch(PDOException $e) {
    echo 'ERROR UPDATING CONTENT: ' . $e->getMessage();
}</code>

Atas ialah kandungan terperinci Mengapa fetchAll() menyebabkan \"SQLSTATE[HY000]: General Error\" dalam PDO apabila mengemas kini pangkalan data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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