Caused by: android.database.sqlite.SQLiteException: near "": syntax error (code 1): , while compiling:
android, android-sqlite, java
Solution
`order` is a keyword in SQL. Either rename the table, or put the table name in double quotes like `"order"`.
Problem
``` 11-27 03:32:04.471: E/AndroidRuntime(23137): Caused by: android.database.sqlite.SQLiteException: near "order": syntax error (code 1): , while compiling: create table order (_id integer primary key autoincrement, origin text not null, quantity integer not null); ``` MyDatabase class: ``` public class MyDatabase extends SQLiteOpenHelper { public static final String TABLE_NAME = "order"; public static final String TABLE_ID = "_id"; public static final String TABLE_ORIGIN = "origin"; public static final String TABLE_QUANTITY = "quantity"; private static final String DATABASE_NAME = "Appple.db"; private static final int DATABASE_VERSION = 1; private static final String DATABASE_CREATE = "create table " + TABLE_NAME + "(" + TABLE_ID + " integer primary key autoincrement, " + TABLE_ORIGIN + " text not null, " + TABLE_QUANTITY + " integer not null);"; public MyDatabase (Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } public void onCreate(SQLiteDatabase db) { db.execSQL(DATABASE_CREATE); } public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); onCreate(db); } } ``` Operation class: ``` public class Operation { private MyDatabase dbHelper; private String[] COLUMNS = { MyDatabase.TABLE_ID, MyDatabase.TABLE_ORIGIN, MyDatabase.TABLE_QUANTITY }; private SQLiteDatabase database; public Operation(Context context) { dbHelper = new MyDatabase(context); } public void open() throws SQLException { database = dbHelper.getWritableDatabase(); } public void close() { dbHelper.close(); } public void add(String origin, String quantity) { ContentValues values = new ContentValues(); values.put(MyDatabase.TABLE_ORIGIN, origin); values.put(MyDatabase.TABLE_QUANTITY, Integer.parseInt(quantity)); database.insert(MyDatabase.TABLE_NAME, null, values); } public int get(String origin) { int total = 0; Cursor cursor = database.query(MyDatabase.TABLE_NAME, COLUMNS, MyDatabase.TABLE_ORIGIN + " = " + origin, null, null, null, null); cursor.moveToFirst(); while(!cursor.isAfterLast()) { total += cursor.getInt(2); cursor.moveToNext(); } cursor.close(); return total; } } ``` In MainActivity start with ``` Operation op; op = new Operation(this); op.open(); ``` I think there is no problem in CREATE TABLE. But I can't find cause of error.