2
,當我嘗試運行程序MySQL和JDBC PreparedStatement的使用選擇
異常 Caughtcom.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException我得到這個異常:您 在你的SQL有一個錯誤句法;檢查與您的MySQL服務器版本 相對應的手冊,以獲得在''附近使用的正確語法'?並通過 =?'在第1行
當我硬代碼值我得到正確的結果。例如:SELECT name, pass from servlettutorial.logintable where name = 'Bill' and pass = 'Gates'
運行得很好。
上述程序中的SQL語法有什麼問題?
try{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/servlettutorial?"
+ "user=root&password=carinov");
String sql = "SELECT name, pass from servlettutorial.logintable where name = ? and pass = ?";
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.setString(1, serv_name);
stmt.setString(2,serv_pass);
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
String d_name = rs.getString("name");
String d_pass = rs.getString("pass");
if(d_name.equals(serv_name) && (d_pass.equals(serv_pass)))
{
found_match=1;
break;
}
}
由於一噸。它解決了這個問題:) – Cafe
@Cafe不客氣 – Eran