6
테이블을 생성하는 다음 코드가 있습니다. 나는이SQL 쿼리 문제 Android Where 절
_id date recordName total
--------------------------------------
7 2011 TestMaxRecord 5
자바 코드처럼 보이는 그것으로 데이터를 삽입 :
public static final String KEY_ROWID = "_id";
public static final String KEY_DATE = "date";
public static final String KEY_TOTAL = "total";
public static final String KEY_RECORD_NAME = "recordName";
private static final String DATABASE_CREATE_RECORDS = "create table " + DATABASE_TABLE_RECORDS + " ("
+ KEY_ROWID + " integer primary key autoincrement, "
+ KEY_DATE + " text not null, "
+ KEY_RECORD_NAME + " text not null, "
+ KEY_TOTAL + " text not null);";
public Cursor getRecord(String name) throws SQLException {
return mDb.query(true, DATABASE_TABLE_RECORDS, new String[] {KEY_ROWID, KEY_DATE, KEY_RECORD_NAME, KEY_TOTAL}, KEY_RECORD_NAME + " = " + name, null, null, null, null, null);
}
그것은 때마다 예외가 발생 어디에 이름 = "TestMaxRecord"(에도 불구하고 거기에서 데이터가있는) 다음 오류를
android.database.sqlite.SQLiteException : 그런 칼럼 : TestMaxRecord : 컴파일하는 동안 : SELECT DISTINCT _id, 날짜, recordName, 기록에서 총 recordName = TestMaxRecord
내게 열 제목 TestMaxRecord
을 찾고있는 것처럼 보입니다. 나는 안드로이드 초보자지만,이 부분을 꽤 정확하게 예제 (int를 사용했다)에서 복사했습니다. 쿼리에서 int와 Strings를 사용하는 데 차이가 있습니까?
조사, 또는
그 가공 한 :이 솔루션은, 당신이 매개 변수 자리 표시자를 사용하고
selectionArgs
인수를 통해 값을 전달해야 SQL 인젝션에 열려 , 감사. 그게 문자열 이니까? 이전에 귀하의 링크에있는 자료를 살펴 봤는데 WHERE 절이 도움이되지 않습니다. WHERE 절에서 훨씬 적은 문자열 ... 적어도 내가 찾은 곳. – easycheese