Ralat Pembolehubah Tidak Diisytiharkan Semasa Menggunakan SELECT INTO Query
Apabila cuba untuk melaksanakan pernyataan SELECT INTO yang menyimpan keputusan ke dalam pembolehubah, anda boleh menghadapi ralat berikut:
Pembolehubah tidak diisytiharkan:
Ralat ini biasanya berlaku apabila pembolehubah yang dinyatakan dalam klausa INTO belum diisytiharkan atau dimulakan terlebih dahulu.
Contoh
Pertimbangkan pertanyaan berikut:
SELECT id_subscriber INTO newsletter_to_send FROM subscribers
Apabila anda cuba melaksanakan pertanyaan ini, anda akan menerima mesej ralat "#1327 - Pembolehubah tidak diisytiharkan: newsletter_to_send". Ralat ini menunjukkan bahawa pembolehubah "newsletter_to_send" belum dibuat atau diberikan nilai.
Penyelesaian
Untuk menyelesaikan ralat ini, anda mesti gunakan penyataan INSERT...SELECT sebaliknya:
INSERT INTO newsletter_to_send SELECT id_subscriber FROM subscribers
Pernyataan INSERT...SELECT membolehkan anda memasukkan hasil pertanyaan terus ke dalam jadual tertentu, dengan berkesan mewujudkan pembolehubah sasaran dalam proses.
Nota Tambahan
Adalah penting untuk memastikan pertanyaan yang digunakan dalam pernyataan INSERT...SELECT adalah betul dan tidak menghasilkan rekod pendua. Pertimbangkan untuk menambah klausa WHERE untuk menapis data seperti yang diperlukan.
Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat \'Pembolehubah Tidak Diisytiharkan\' Semasa Menggunakan SELECT INTO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!