Rumah >pangkalan data >tutorial mysql >Bolehkah Nama Lajur Digunakan sebagai Parameter Input dalam PreparedStatements?

Bolehkah Nama Lajur Digunakan sebagai Parameter Input dalam PreparedStatements?

Susan Sarandon
Susan Sarandonasal
2024-12-31 03:02:08444semak imbas

Can Column Names Be Used as Input Parameters in PreparedStatements?

Menggunakan Nama Lajur sebagai Parameter Input dalam PreparedStatements

Soalan:
Bolehkah nama lajur digunakan sebagai parameter input dalam pertanyaan PreparedStatement, seperti "SELECT * FROM A,B WHERE A.X = ?" dan memberikan nilai kepada B.Y sebagai parameter?

Jawapan:
Tidak, JDBC tidak membenarkan penggunaan nama lajur sebagai parameter input. PreparedStatements hanya menerima nilai lajur sebagai parameter. Untuk mengubah suai pernyataan SQL secara dinamik, ia mesti dilakukan sebelum membuat PreparedStatement.

Menggunakan contoh yang disediakan:

Table A has Attribute X + others
Table B has Attribute Y + others

PparedStatement boleh dibina seperti berikut:

String sql = "SELECT * FROM A, B WHERE A.X = ?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1, "value for A.X");

Walau bagaimanapun, adalah tidak mungkin untuk menetapkan parameter secara dinamik kepada "B.Y" kerana ia adalah lajur nama.

Atas ialah kandungan terperinci Bolehkah Nama Lajur Digunakan sebagai Parameter Input dalam PreparedStatements?. 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