Dan*_*iel 2 mysql android sqlexception
当我使用我的函数从"mysql.db"检索数据时,我得到SQL Exception(无法识别的令牌).String 地址内部有引号时发生异常.
我已经尝试改变这一行
KEY_ADDRESS + "='" + address + "'",
Run Code Online (Sandbox Code Playgroud)
至
KEY_ADDRESS + "=\"" + address + "\"",
Run Code Online (Sandbox Code Playgroud)
它解决了包含单引号(')和(`)的字符串的问题,但是为包含双引号(")的字符串创建了另一个问题.
我试过用
DatabaseUtils.sqlEscapeString(address);
Run Code Online (Sandbox Code Playgroud)
没有效果.
我试图从这个问题中使用转义函数:如何在MySQL中转义特殊字符?,但它没有用.
这是我的代码:
public Cursor getNameFromAddress(String address) throws SQLException
{
Cursor mCursor =
db.query(DATABASE_TABLE_PRINC, new String[] {
KEY_ROWID,
KEY_NAME,
KEY_ADDRESS
},
KEY_ADDRESS + "='" + address + "'",
null,
null,
null,
null,
null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
Run Code Online (Sandbox Code Playgroud)
那些selectionArgs/ whereArgs旨在用于此:
Cursor mCursor =
db.query(DATABASE_TABLE_PRINC, new String[] {
KEY_ROWID,
KEY_NAME,
KEY_ADDRESS
},
KEY_ADDRESS + "=?",
new String[] { address },
null,
null,
null,
null);
Run Code Online (Sandbox Code Playgroud)
替换所有"='" + stuff + "'"与"=?"并把数据以填补?在他们的待填充的s阶String[]
? 然后将自动替换为转义字符串数据.
| 归档时间: |
|
| 查看次数: |
2202 次 |
| 最近记录: |