当我使用我的函数从“mysql.db”检索数据时,我收到了 SQL 异常(无法识别的令牌)。当字符串地址内部有引号时会发生异常。
我已经尝试更改此行
KEY_ADDRESS + "='" + address + "'",
到
KEY_ADDRESS + "=\"" + address + "\"",
它解决了我对包含单引号 (') 和 (`) 的字符串的问题,但对包含双引号 (") 的字符串产生了另一个问题。
我尝试使用
DatabaseUtils.sqlEscapeString(address);
没有效果。
我试图从这个问题中使用转义函数:如何在 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;
}