String ans1= "Apple";
myDb.execSQL("INSERT INTO " +
TABLE_NAME + " Values (ans1);");
このようには機能しません..なぜですか?? これを行うには簡単な方法が必要です。私のような初心者にとって混乱を招くようなクラスを使用したくありませんか?
この例を試してください:
public long insertValue(String value1, String value2) {
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_VALUE1, value1);
initialValues.put(KEY_VALUE2, value2);
return mDb.insert(DATABASE_TABLE, null, initialValues);
}
挿入ステートメントは次のようになります
"INSERT INTO " + TABLE_NAME + " VALUES ('" + ans1 + "');"
ans1 を単一引用符で囲むことに注意してください。文字列値を SQL テーブルに挿入する場合は、単一引用符で囲む必要があります。
変数の値をSQLステートメントに挿入するには、変数+変数+引用符を再度開く前に引用符を終了する必要があります。文字列値の場合は、変数を一重引用符で囲む必要もあります。
myDb.execSQL("INSERT INTO " +
TABLE_NAME + " Values ('" + ans1 + "');");
値は次のようにする必要があります
値("+ans1+");
ans1 が引用符で囲まれていることを確認します。
注: 生の SQL ステートメントは、SQL インジェクション攻撃を受けやすい傾向があります。
変数の値をテーブルに挿入しているため"
、以下のように ( double cots )から変数 ANS を使用する必要があります。
String ans1= "Apple";
myDb.execSQL("INSERT INTO " + TABLE_NAME + " Values ( '" + ans1 + "' );");
内で TABLE_NAME 変数を使用していないのと同じ"
です。
私にとっては、データベースからの選択を使用して最後にIDを挿入し、新しいデータをデータベースに挿入したかったのですが、選択クエリがその機能を使用しています
pagesClass.getLastID('users', function(err, id){var id = id}
または、関数によって返された直接IDを使用できます
User.createUser = function (result){
var pagesClass = new PagesClass();
pagesClass.getLastID('users', function(err, id){
conn.query("INSERT INTO users(id, name, email, password) VALUE('"+id+"', 'djsk"+id+"', 'yes@gmail.com"+id+"', 'bercove') ", function (err, res){
if(err)
result(null, err);
else
result(null, res);
});
});
};
それらのIDを名前列とメール列に追加すると、変数を他の列に追加する方法が示されました