何らかの理由で、名前フィールドにアポストロフィを含む一重引用符を取得して、sqlite データベースに送信することができません。
ここで、入力を取得してデータベース関数を呼び出します
if(fnamelabel.contains("'") || fnamelabel.contains("-")){
fnamelabel = DatabaseUtils.sqlEscapeString(fnamelabel);
}else if(lnamelabel.contains("'") || lnamelabel.contains("-")){
lnamelabel = DatabaseUtils.sqlEscapeString(lnamelabel);
}
Log.w("myApp", "fname " + fnamelabel + ".");
Log.w("myApp", "lname " + lnamelabel + ".");
try{
//if all fields are filled and has a number between 0 and 99
LiteHandlerPlayers db = new LiteHandlerPlayers(getApplicationContext());
if(db.insertLabel(fnamelabel, lnamelabel, pnumlabel)){
db.getWritableDatabase();
db.insertLabel(fnamelabel, lnamelabel, pnumlabel);
Toast.makeText(getApplicationContext(), "#" + pnumlabel + " " + fnamelabel + " " + lnamelabel + " has been added to your team.", Toast.LENGTH_SHORT).show();
db.close();
}else{
Toast.makeText(getApplicationContext(), "That player is already on your team!", Toast.LENGTH_SHORT).show();
}
これがデータベース内の私の関数です
if(flag){
//no player in db with name
ContentValues values = new ContentValues();
values.put(Player_fname, label);
values.put(Player_lname, label2);
values.put(Player_num , label3);
values.put(Player_gplay, 0);
values.put(Player_assist, 0);
values.put(Player_shots, 0);
values.put(Player_goals, 0);
values.put(Player_shagn, 0);
values.put(Player_gallw, 0);
values.put(Player_assist, 0);
db.insert(Table_labels, null, values);
db.close();//close db
return true;
}else{
db.close();
return false;
}
最終的に別の画面のスピナーに表示されますが、Bob O'Connor (この時点で O'Connor は O''Connor に変更されます) のような名前の例で発生し続けるエラーは、近くに構文エラーがあることです。 O''Connor の O はかなりあいまいです。((1)「O」の近く:構文エラー、まさにそれが言っていることです)誰かが私を啓発できるなら、私は大いに義務付けられます.