0
こんにちは、MySQL
データベースにデータを挿入しようとしていますが、このようなエラーが発生しています。アンドロイドスタジオのmysqlにデータを挿入
W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x4194cc98)
W/dalvikvm: threadid=1: uncaught exception occurred
W/System.err: java.lang.NullPointerException
W/System.err: at com.kayaserhat.kampanyalar.Activity_Main.kampanyaGir(Activity_Main.java:115)
W/System.err: at com.kayaserhat.kampanyalar.Activity_Main.access$200(Activity_Main.java:32)
W/System.err: at com.kayaserhat.kampanyalar.Activity_Main$1.onClick(Activity_Main.java:86)
W/System.err: at android.view.View.performClick(View.java:4463)
W/System.err: at android.view.View$PerformClick.run(View.java:18789)
W/System.err: at android.os.Handler.handleCallback(Handler.java:808)
W/System.err: at android.os.Handler.dispatchMessage(Handler.java:103)
W/System.err: at android.os.Looper.loop(Looper.java:193)
W/System.err: at android.app.ActivityThread.main(ActivityThread.java:5307)
W/System.err: at java.lang.reflect.Method.invokeNative(Native Method)
W/System.err: at java.lang.reflect.Method.invoke(Method.java:515)
W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:831)
W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:647)
W/System.err: at dalvik.system.NativeStart.main(Native Method)
W/dalvikvm: threadid=1: calling UncaughtExceptionHandler
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.kayaserhat.kampanyalar, PID: 3581
java.lang.NullPointerException
at com.kayaserhat.kampanyalar.Activity_Main.kampanyaGir(Activity_Main.java:115)
at com.kayaserhat.kampanyalar.Activity_Main.access$200(Activity_Main.java:32)
at com.kayaserhat.kampanyalar.Activity_Main$1.onClick(Activity_Main.java:86)
at android.view.View.performClick(View.java:4463)
at android.view.View$PerformClick.run(View.java:18789)
at android.os.Handler.handleCallback(Handler.java:808)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5307)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:831)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:647)
at dalvik.system.NativeStart.main(Native Method)
Application terminated.
ここActivity_Main.javaに
をコード
を使用して送信ボタン
btnSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String dukkan = dukkanTxt.getText().toString();
String kampanya = kampanyaTxt.getText().toString();
if (!dukkan.isEmpty() && !kampanya.isEmpty()) {
kampanyaGir(dukkan, kampanya);
} else {
Toast.makeText(getApplicationContext(),
"Alanları boş bırakmayınız!", Toast.LENGTH_LONG)
.show();
}
}
});
kampanyaGir()
private void kampanyaGir(final String dukkan, final String kampanya) {
// Tag used to cancel the request
String tag_string_req = "req_register";
pDialog.setMessage("Veri giriliyor.. ...");
showDialog();
StringRequest strReq = new StringRequest(Method.POST,
Config_URL.URL_REGISTER, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG, "Register Response: " + response.toString());
hideDialog();
try {
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");
if (!error) {
// User successfully stored in MySQL
// Now store the user in sqlite
//String uid = jObj.getString("uid");
//JSONObject user = jObj.getJSONObject("user");
// String dukkan = user.getString("dukkan");
// String kampanya = user.getString("kampanya");
// String created_at = user
// .getString("created_at");
// Inserting row in users table*/
db.veriGir(dukkan, kampanya);
// success message
Toast.makeText(getApplicationContext(), "Başarılı", Toast.LENGTH_LONG).show();
} else {
// Error occurred in registration. Get the error
// message
String errorMsg = jObj.getString("error_msg");
Toast.makeText(getApplicationContext(),
errorMsg, Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Veri girişi esnasında sıkıntı: " + error.getMessage());
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_LONG).show();
hideDialog();
}
}) {
@Override
protected Map<String, String> getParams() {
// Posting params to register url
Map<String, String> params = new HashMap<String, String>();
params.put("tag", "verigir");
params.put("dukkan", dukkan);
params.put("kampanya", kampanya);
return params;
}
};
// Adding request to request queue
AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
}
veriGir()
public void veriGir(String dukkan, String kampanya) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_DUKKAN, dukkan); // Name
values.put(KEY_KAMPANYA, kampanya); // Email
// Inserting Row
long id = db.insert(TABLE_KAMPANYA, null, values);
db.close(); // Closing database connection
Log.d(TAG, "Kampanya girildi: " + id);
}
私は2日以来、これが真実にしようとしていると私は何をするのか分かりません。 間違いはどこですか?
申し訳ありませんが悪い英語の人は誰でも私を助けてくれる?
と、これらのコードは以下のphp
プログラムで使用されています
のindex.php
else if ($tag =='verigir') {
$dukkan = $_POST['dukkan'];
$kampanya = $_POST['kampanya'];
$user = $db->veriGir($dukkan, $kampanya);
}
DB_Functions.php
public function veriGir($dukkan, $kampanya) {
$result = mysql_query("INSERT INTO kampanyalar(dukkan, kampanya) VALUES('$dukkan', '$kampanya', NOW())");
// check for successful store
if ($result) {
// get user details
$result = mysql_query("SELECT * FROM kampanyalar WHERE dukkan = $dukkan");
// return user details
return mysql_fetch_array($result);
} else {
return false;
}
}
私は私が検索し、今何をするか分かりませんグーグルでは、私はこの問題については何も持っていません。
を宣言
yourdatabaseclass obj = new yourdatabasecalss (yourclass.this)
を宣言することで、データベースオブジェクトを追加する必要が代わりにthis
のこのラインSQLiteDatabase db = this.getWritableDatabase();
でいるのですか? –