Проблема с вставкой строки на MySQL с использованием JDBC-соединения в Android - PullRequest
0 голосов
/ 07 октября 2018

Я следовал за ответом этого парня при вставке.Вот код для моего AsyncTask

    private class sendRequest extends AsyncTask<String, String, String> {

    String z = "";

    boolean isSuccess = false;

    @Override
    protected void onPreExecute() {
        progressDialog.setMessage("Sending request...");
        progressDialog.show();

        super.onPreExecute();
    }

    @Override
    protected String doInBackground(String... params) {

        try {
            Connection con = connectionClass.CONN();
            if (con == null) {
                z = "Please check your internet connection";
            } else {

                myArrayList.clear();

                String query = "insert into notifications (id, suggestion, type, isIgnored) values ('', '"+ sv.getQuery().toString()  +"', 'medicine', 'false')";

                Statement stmt1 = con.createStatement();

                stmt1.executeUpdate(query);

            }
        } catch (Exception ex) {
            isSuccess = false;
            z = "Exceptions" + ex;
        }
        return z;
    }

    @Override
   protected void onPostExecute(String s) {
        if(!isSuccess && !z.equals("")) {
            Toast.makeText(getBaseContext(), z, Toast.LENGTH_LONG).show();
        }

        progressDialog.hide();
    }
}

Тем не менее, я получаю это сообщение об ошибке ниже, мне было интересно, почему или как это была ошибка, потому что мой запрос был вставкой, а не усечением.Пожалуйста, помогите

enter image description here

1 Ответ

0 голосов
/ 07 октября 2018

Во-первых, я бы посоветовал вам использовать PreparedStatement для установки параметров, чтобы избежать SQL-инъекций

По вашему вопросу причина в том, что id является типомиз integer, но вы только что передали '' для него:

 String query = "insert into notifications (id, suggestion, type, isIgnored) values ('', '"+ sv.getQuery().toString()  +"', 'medicine', 'false')";

Два способа решения:
a.Передайте целочисленное значение для id
b.Сделайте id как автоинкремент и удалите id в sql как показано ниже:

String query = "insert into notifications (suggestion, type, isIgnored) 
         values ('"+ sv.getQuery().toString()  +"', 'medicine', 'false')";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...