I created a database and created some tables on it. But in some point i’m doing wrong so the app’s crash onStart. Here’s some part of my code:
private SQLiteStatement insertUserInfos;
private static final String TN_INFO = "UserInfos";
private static final String CREATE_TABLE_INFO = "CREATE TABLE "
+ TN_INFO
+ " ( \"name\" TEXT, \"surname\" TEXT, \"mail\" TEXT, \"password\" TEXT, \"birthyear\" TEXT, \"currentcity\" TEXT, \"futurecity\" TEXT, \"check\" TEXT ) ";
private static final String INSERT_INFOS = "INSERT INTO "
+ TN_INFO
+ " ( name, surname, mail, password, birthyear, currentcity, futurecity, check ) Values (?,?,?,?,?,?,?,?) ";
public DBHelper(Context context) {
this.ctx = context;
DBOpenHelper db = new DBOpenHelper(ctx);
database = db.getWritableDatabase();
insertUserInfos = database.compileStatement(INSERT_INFOS);
}
private class DBOpenHelper extends SQLiteOpenHelper {
public DBOpenHelper(Context context) {
super(ctx, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE_INFO);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
And i’m getting this error:
06-27 22:42:01.870: E/AndroidRuntime(16550): Caused by: android.database.sqlite.SQLiteException: near “check”: syntax error: , while compiling: INSERT INTO UserInfos ( name, surname, mail, password, birthyear, currentcity, futurecity, check ) Values (?,?,?,?,?,?,?,?)
I’ve check bunch of times, but i couldn’t see any error on this line. Any help would be so nice.
check is a reserved word, you have to quote it. While you do it in your create statement, you forgot it in your insert statement.