Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android sqllite。Can';如果字符串包含'+';性格_Android_Sqlite - Fatal编程技术网

Android sqllite。Can';如果字符串包含'+';性格

Android sqllite。Can';如果字符串包含'+';性格,android,sqlite,Android,Sqlite,我正在尝试删除表中的行: DBHelper dbHelper = new DBHelper(ctx); SQLiteDatabase db = dbHelper.getWritableDatabase(); String _number="+79261604030"; db.delete("calls", "number = " + _number, null);` 如果只使用数字,一切正常,但如果字符串有+符号,则不会删除该行。我认为这是特殊字符的问题,但不知道如何更改字符串 谢谢。切勿使用

我正在尝试删除表中的行:

DBHelper dbHelper = new DBHelper(ctx);
SQLiteDatabase db = dbHelper.getWritableDatabase();
String _number="+79261604030";
db.delete("calls", "number = " + _number, null);`
如果只使用数字,一切正常,但如果字符串有
+
符号,则不会删除该行。我认为这是特殊字符的问题,但不知道如何更改字符串


谢谢。

切勿使用字符串连接来创建查询。使用占位符:

String[] args={"+79261604030"};
db.delete("calls", "number = ?", args);

除了更安全之外,它还处理所有您未处理的内容,例如引用字符串。

切勿使用字符串连接来创建查询。使用占位符:

String[] args={"+79261604030"};
db.delete("calls", "number = ?", args);

除了更安全之外,它还处理所有您没有处理的内容,例如引用字符串。

您得到的错误是什么?没有错误,只是没有删除行。如果sting有19个以上的字符,它也不会删除行。你会得到什么错误?没有错误,它只是不会删除行。如果sting有19个以上的字符,它也不会删除行。我接受了你的建议,它成功了,非常感谢!我接受了你的建议,效果很好,非常感谢!