2017-10-28 166 views
2

我正嘗試使用預準備語句插入到車輛表中。 This is the table shown in PHPMyAdminJDBC準備好的語句語法錯誤

這是我的Java代碼

try { 
     String sql = "INSERT INTO vehicle (vin, serial, make, model, year, reg.no., status) VALUES (?, ?, ?, ?, ?, ?, ?)"; 
     PreparedStatement statement = con.prepareStatement(sql); 
     statement.setString(1, vin); 
     statement.setString(2, serial); 
     statement.setString(3, make); 
     statement.setString(4, model); 
     statement.setInt(5, 10); 
     statement.setInt(6, 17); 
     statement.setString(7, status); 
     System.out.println(statement.toString()); 

     int rowsInserted = statement.executeUpdate(); 
     if (rowsInserted > 0) { 
      System.out.println("A new user was inserted successfully!"); 
     } 
    } catch (Exception ex) { 
     System.out.println(ex); 
    } 

,這是所產生的誤差

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' status) VALUES ('dfg', 'dfgfg', 'fg', 'sd564', 10, 17, 'dsf')' at line 1 

我無言以對。這是否與我不傳遞表中的主鍵「ID」列的值?

回答

0

reg.no.不是有效的列名稱。如果你真的需要使用它,你應該引用它:

INSERT INTO vehicle (vin, serial, make, model, year, `reg.no.`, status) 
-- Here ---------------------------------------------^-------^ 
VALUES (?, ?, ?, ?, ?, ?, ?)";