我正在尝试使用此更新我的数据库。
String dd = "1-PC CHICKEN & RICE";
SQLiteDatabase db2 = openOrCreateDatabase("order",MODE_PRIVATE,null);
ContentValues values = new ContentValues();
values.put("Description",(((TextView) findViewById(R.id.etoriginal)).getText().toString()));
db1.update("list", values, "Description ="+ dd ,null);
但是我的日志猫中出现了这个错误
07-04 16:20:00.659: E/AndroidRuntime(21504): android.database.sqlite.SQLiteException: near "CHICKEN": syntax error: , while compiling: UPDATE list SET Image=? WHERE Description =1-PC CHICKEN & RICE
我无法弄清楚是什么导致了这个
答案 0 :(得分:0)
您需要转义dd
的值,而不是直接在查询中嵌入它。试试这个:
db1.update("list", values, "Description = ?", new String[] { dd });
如dbaseman所说,将dd
包含在引号中也适用于此特定情况,但如果dd
恰好包含引号字符本身("1-PC FROGS' LEGS"
),则会失败。正如我在这里所做的那样,将它作为一个单独的参数提供,通常更安全,更有效。
答案 1 :(得分:0)
您需要将条件包装在引号中:
db1.update("list", values, "Description ='" + dd + "'", null);