[英]Prepared statements with MySQL?
我對預備語句的語法感到有些麻煩,我認為這是語法問題。
我有以下代碼
String query2="SELECT lname FROM school_student WHERE sid = ? ORDER BY sid;";
PreparedStatement ps = cn.prepareStatement(query2);
ps.setInt(1, 3);
ResultSet rs = ps.executeQuery(query2);
我遇到的問題是我收到此錯誤消息:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? ORDER BY sid' at line 1
但是,當我用“?”代替時 在查詢3的查詢中,查詢工作正常,沒有錯誤,並給出了我想要的內容。 我如何設置“?”的值似乎有問題。 在我的查詢? 我使用的語法錯誤嗎?
只需使用
ps.executeQuery();
(即,使用不帶任何參數的重載executeQuery()
方法)。 在准備語句時,您已經通過了查詢。
使用此查詢:
字符串查詢2 =“從school_student WHERE sid中選擇SELECT名稱=“ + attribute +” ORDER BY sid;“;
並簡單地使用
ps.executeQuery();
我認為在准備查詢時,這是語法問題,請嘗試使用該語法。...string query2 =“ SELECT lname FROM school_student WHERE sid = + variablename + ORDER BY sid;”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.