【发布时间】:2015-08-04 10:51:00
【问题描述】:
我收到此错误:
android.database.sqlite.SQLiteException: near ":12": syntax error (code 1): while compiling: INSERT INTO TIME VALUES(15:12);
我的代码如下:
SQLiteDatabase db = openOrCreateDatabase("timedb", Context.MODE_WORLD_WRITEABLE, null);
s = (timePicker.getCurrentHour().toString() +" : " + timePicker.getCurrentMinute().toString());
s = "'" + s + "'";
db.execSQL("CREATE TABLE if not exists TIME"+" ("+ "times" +" VARCHAR(100)"+");");
query = "INSERT INTO TIME"+ "VALUES"+"("+s+")";
db.execSQL(query);
startActivity(new Intent(Preferences.this, MainActivity.class));
我确定,我从这段代码中得到了错误。有人可以帮我吗?
【问题讨论】:
-
插入前消毒。使用参数化查询。
-
试试这个:
query = "INSERT INTO TIME"+ "VALUES"+"('"+s+"')"; -
将单引号添加到您的值,因为它是字符串。
-
如前所述,您不仅需要单引号。您还错过了 VALUES 关键字之前的 空格:
"INSERT INTO TIME VALUES ('" + s + "')"。您还希望尽可能摆脱无用的字符串连接。 -
在问问题之前至少在 Google 上搜索 如何在 Android 中使用 SQLite? 你会得到 100 种方法。我很确定。
标签: android sqlite sql-insert