在下面的块中,RestaurantInt是一种数据类型,update()打开与数据库的连接并操纵数据。
public boolean registerRestaurant(RestaurantInt restaurant) {
boolean result = update("INSERT INTO restaurants (name, emailAddress, houseNumber, postCode, password) VALUES (\'"+restaurant.getName()+"\', \'"+restaurant.getEmail()+"\', "+restaurant.getAddress().getHouseNumber()+", \'"+restaurant.getAddress().getPostCode()+"\', \'"+restaurant.getPassword()+"\')");
return result;
}
以下是餐厅的结构:
Name - Type - Null? - Extra
restaurantID - int(11) - NO - auto_increment (primary key)
name - varchar(20) - YES -
emailAddress - varchar(20) - NO -
houseNumber - int(11) - NO - (multiple key)
postCode - varchar(6) - NO -
password - varchar(20) - NO -
修改 的
我只是删除了逃脱,它完美无缺。我没有删除逃脱,因为我被指示总是使用逃生。在整个项目的其余部分,它从未提出过一个问题,直到现在。谢谢你的帮助!
答案 0 :(得分:0)
假设您插入的每个变量都有一个值(甚至不会导致错误),您的错误可能与转义SQL语句中的单引号有关。你不必这样做,因为它们被包含在一个双引号句中,它们将按字面解释。
答案 1 :(得分:0)
正如你可以在其中一条评论中看到的那样,你不需要逃避单引号。 但是,运行插入时,您的数据库可能会逃脱它们。删除逃逸的反斜杠,这应该工作。 也考虑使用 PreparedStatement