簡體   English   中英

用MySQL准備的語句?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM