我正在尝试将值插入表
public class DatabaseHandler extends SQLiteOpenHelper {
private final static String INSERT_INTO_COUNTRIES = "INSERT INTO " + TABLE_COUNTRIES
+ " VALUES";
@Override
public void onCreate(SQLiteDatabase db) {
final String countries = "('1','Andorra','93','flag_andorra','AND'),
('2','Austria','43','flag_flag_austria','AUT')";
String query = INSERT_INTO_COUNTRIES + countries + ";";
db.execSQL(query);
}
}
并收到以下错误:
android.database.sqlite.SQLiteException: near ",": syntax error: , while compiling: INSERT INTO cardberry_countries VALUES('1','Andorra','93','flag_andorra','AND'),('2','Austria','43','flag_flag_austria','AUT');
Android 4.0.4 HTC Sense 3.6发生错误。 我在Android 4.2及更高版本上运行的多个设备上进行了测试,它运行良好。
有人知道这是什么问题吗?
答案 0 :(得分:6)
答案 1 :(得分:1)
如果打印出SQL INSERT字符串,它会更容易被发现。
但即使你解决了这个问题,这仍然是一个糟糕的方法。您应该使用PreparedStatement
来转义和绑定变量。它不容易出错。你可以从SQL注入攻击中获得额外的奖励。