Rumah >pembangunan bahagian belakang >tutorial php >Mengapa fetchAll() menyebabkan \'SQLSTATE[HY000]: General Error\' dalam PDO apabila 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.
Mesej ralat "SQLSTATE[HY000]: Ralat umum" memberikan sedikit maklumat tentang sebenar masalah. Ia biasanya menunjukkan isu generik dengan pertanyaan pangkalan data.
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.
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!