0

私は、これを使用してデータベースを更新しようとしています。

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

何が原因なのかわかりません

4

2 に答える 2

0

ddクエリに直接埋め込むのではなく、の値をエスケープする必要があります。代わりにこれを試してください:

db1.update("list", values, "Description = ?", new String[] { dd });

dbasemanが言うように、引用符で囲むこともこの特定の場合に機能しますが、引用符自体が含まれているdd場合は失敗します( )。私がここで行っているように、それを別個のパラメーターとして提供することは、一般的に、より安全でより効率的です。dd"1-PC FROGS' LEGS"

于 2012-07-04T08:32:26.087 に答える
0

条件を引用符で囲む必要があります。

db1.update("list", values, "Description ='" + dd + "'", null);
于 2012-07-04T08:32:34.343 に答える