Android Sqlite插入单引号ex。 “奥康纳”

时间:2015-03-26 03:12:18

标签: android sqlite escaping apostrophe single-quotes

出于某种原因,我无法在名称字段中使用撇号获取单引号以提交到我的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();
                    }

这是我在db

中的功能
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”:语法错误,正如它所说的那样)如果有人能够启发我,我会非常感激。

0 个答案:

没有答案