sql >> データベース >  >> RDS >> SQLite

Android SQLiteエラー:変数番号は?1から?999の間でなければなりません

    この行:

    db.update(LoginTable.TABLE_NAME, values, LoginTable.Cols.CONSUMER_ID + "=?" + userModel.consumer_no, null);
    

    間違っている。
    2つの選択肢があります。
    1つ目は、LoginTable.Cols.CONSUMER_IDに渡された値を連結することです。 このように:

    db.update(LoginTable.TABLE_NAME, values, LoginTable.Cols.CONSUMER_ID + " = '" + userModel.consumer_no + "'", null);
    

    userModel.consumer_noの場合 文字列、または:

    db.update(LoginTable.TABLE_NAME, values, LoginTable.Cols.CONSUMER_ID + " = " + userModel.consumer_no, null);
    

    userModel.consumer_noの場合 は整数値です。
    2番目の選択肢の方が安全です:

    db.update(LoginTable.TABLE_NAME, values, LoginTable.Cols.CONSUMER_ID + " = ?", new String[] { String.valueOf(userModel.consumer_no) });
    

    String.valueOf()は省略できます userModel.consumer_noの場合 は文字列です。

    コードのエラーは、引数userModel.consumer_noを渡す上記の2つの方法を何らかの方法で混合したことです。 update()へ メソッド。




    1. ネストされたトランザクションはMySQLで許可されていますか?

    2. DBに接続せずにmysql_real_escape_stringの代わりに

    3. postgres / postgresql / psqlの文字/文字にコメントしますか?

    4. SSHトンネルを介したMySQL接続-他のMySQLサーバーを指定する方法は?