Я проверил stackoverflow для этого, но я до сих пор не нашел ответа, который сработал для меня. Я пытаюсь создать имя пользователя через SQLite и я постоянно получаю эту ошибку из LogCat,Android Sqlite Ошибка синтаксиса new "foo"
03-11 16:19:57.767: E/com.asmaushaheedah.database.DatabaseHelper(25118): SELECT id FROM user WHERE email & password [email protected] hello 03-11 16:19:57.767: E/SQLiteLog(25118): (1) near "foo": syntax error
фрагмент моего класса databasehelper является:
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String LOG = DatabaseHelper.class.getName();
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "projectManager";
// Table Names
private static final String TABLE_USER = "user";
private static final String KEY_ID = "id";
// USER Table - column nmaes
private static final String KEY_NAME = "name";
private static final String KEY_SURNAME = "surname";
private static final String KEY_DOB = "dob";
private static final String KEY_NICK = "nick";
private static final String KEY_EMAIL = "email";
private static final String KEY_PASSWORD = "password";
private static final String CREATE_TABLE_USER = "CREATE TABLE "
+ TABLE_USER + "(" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_NAME
+ " text," + KEY_SURNAME + " text," + KEY_DOB + " DATETIME,"
+ KEY_NICK + " text," + KEY_EMAIL + " text," + KEY_PASSWORD
+ " text" + ")";
public User getUser(String email, String password) {
SQLiteDatabase db = this.getReadableDatabase();
String selectQuery = "SELECT id FROM " + TABLE_USER + " WHERE "
+ KEY_EMAIL + " & " + KEY_PASSWORD+ " =?" + email + password;
Log.e(LOG, selectQuery);
Cursor c = db.rawQuery(selectQuery, null);
if (c != null)
c.moveToFirst();
User td = new User();
td.setID(c.getInt(c.getColumnIndex(KEY_ID)));
td.setName((c.getString(c.getColumnIndex(KEY_NAME))));
td.setSurname(c.getString(c.getColumnIndex(KEY_SURNAME)));
td.setDob((c.getString(c.getColumnIndex(KEY_DOB))));
td.setNick(c.getString(c.getColumnIndex(KEY_NICK)));
td.setEmail(c.getString(c.getColumnIndex(KEY_EMAIL)));
td.setPassword(c.getString(c.getColumnIndex(KEY_PASSWORD)));
return td;
}
Я не уверен, что при использовании SQLite для входа пользователя - лучший вариант, если нет, может ли кто-нибудь предложить лучший вариант.
Теперь я получаю ошибку синтаксиса вблизи «пароль» – user261588
Также я не вижу отборное заявление в Уре код. – user261588
@ user261588, SELECT неявна с запросом метода. Пожалуйста, предоставьте полное сообщение об ошибке – LaurentY