java - 在Android Studio上将数据插入mysql

标签 java android mysql insert sql-insert

嗨,我试图将数据插入到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;
        }
    }


我不知道该怎么办,现在我在google中搜索,但是我对这个问题一无所知。

最佳答案

问题是在这行SQLiteDatabase db = this.getWritableDatabase();而不是this中,您必须通过声明添加数据库对象

yourdatabaseclass obj = new yourdatabasecalss (yourclass.this)然后声明

SQLiteDatabase db = obj.getWritableDatabase();

关于java - 在Android Studio上将数据插入mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44226149/

相关文章:

Java 方程/表达式生成器

java - 如何在android中读取和显示特定的xml数据

android - 处理 MediaPlayer 抛出无限错误的异常

android - 如何知道 ListView 的最后一项在 android 中是聚焦的?

java - 关于在 Gmail 中实现搜索功能

java - 无法从我的主要 Activity 以外的 Activity 显示 Toast

PHP MYSQL查询快捷方式?

php - 错误 ODBC MS SQL

java - 自动装箱 0 到通用数字

MySQL 按出现列数排序