関数を使用して "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;
}