如何在android studio中设置我的sqlite数据库的默认值
@Override
public void onCreate(SQLiteDatabase db) {
String createTable = "CREATE TABLE "+TABLE+" (id INTEGER PRIMARY KEY AUTOINCREMENT, indo TEXT, tdr TEXT)";
db.execSQL(createTable);
db.execSQL("INSERT INTO "+TABLE+" (indo,tdr) VALUES (ikan,nyao)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE);
onCreate(db);
}
我想在数据库中输入示例数据,然后当我尝试在
db.execSQL("INSERT INTO "+TABLE+" (indo,tdr) VALUES (ikan,nyao)");
哪里出错了,嗯?是因为写作的规则吗?
发布于 2019-06-10 11:43:59
问题是这些值需要用单引号括起来,否则它们将被视为实体名称(本例中为列名)。
所以你可以使用:-
db.execSQL("INSERT INTO "+TABLE+" (indo,tdr) VALUES ('ikan','nyao')") //<<<<<<<<<< ikan and nyao enclosed in single quotes
但是,更正确的方法是使用绑定参数,在这种情况下,您可以使用:
db.execSQL("INSERT INTO "+TABLE+" (indo,tdr) VALUES (?,?)",new String[]{"ikan","nyao"});
SQL
?
's )时,值会被括起来,以防止注入(尽管由于数据不是用户提供的,所以不可能发生SQL注入攻击)。https://stackoverflow.com/questions/56515890
复制相似问题