Rumah >Java >javaTutorial >Mengapa Saya Tidak Boleh Menggunakan Penyata Disediakan untuk Menetapkan Nama Jadual dalam Pertanyaan SQL?

Mengapa Saya Tidak Boleh Menggunakan Penyata Disediakan untuk Menetapkan Nama Jadual dalam Pertanyaan SQL?

Patricia Arquette
Patricia Arquetteasal
2024-12-10 05:32:14408semak imbas

Why Can't I Use Prepared Statements to Set Table Names in SQL Queries?

Menetapkan Nama Jadual Menggunakan Penyata Disediakan

Apabila bekerja dengan pernyataan yang disediakan, adalah penting untuk memahami batasannya. Dalam contoh yang diberikan, pembangun mengalami ralat semasa cuba menetapkan nama jadual menggunakan penggantian parameter.

Isu:

Pertanyaan memerlukan nama jadual sebagai sumber untuk mendapatkan semula data, tetapi pernyataan "SELECT" menggunakan parameter dengan nama jadual dijangka.

Resolusi:

Nama jadual tidak boleh ditetapkan secara dinamik menggunakan parameter pernyataan yang disediakan. Sebaliknya, mereka mesti dikod keras dalam pertanyaan itu sendiri. Penyelesaian yang disediakan menukar kod untuk memasukkan nama jadual secara eksplisit sebagai rentetan dalam pertanyaan:

private String query1 = "SELECT plantID, edrman, plant, vaxnode FROM [" + reportDate + "?]";

Dengan menggabungkan nama jadual berkod keras dengan parameter (?), pertanyaan boleh mengemas kini komponen tarikh secara dinamik sambil mengekalkan rujukan kepada jadual yang betul.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menggunakan Penyata Disediakan untuk Menetapkan Nama Jadual dalam Pertanyaan SQL?. 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