Rumah >pangkalan data >tutorial mysql >Bolehkah Nama Lajur Digunakan sebagai Parameter Input dalam 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!