发布连接数据库android(数据库未更新)

时间:2016-11-02 20:56:49

标签: php android mysql database

我正在尝试在mysql数据库中注册用户,因为我创建了一个PHP来将数据插入数据库并建立一个android连接。但数据没有插入数据库。无法弄清楚什么是错的。我使用的是API 24.以下是我的代码:

Register.php:

<?php
    $con = mysqli_connect("my_hostname" , "my_username" , "my_password" , "my_db_name");
    $name = $_POST("name");

    $email = $_POST("email");
    $password = $_POST("password");

    $insertquery = mysqli_prepare($con, "INSERT INTO contacts (Name, Email, Password) VALUES (?,?,?)");
    mysqli_stmt_bind_param($insertquery , "sss", $name, $email, $password);
    mysqli_stmt_execute($insertquery);

    mysqli_stmt_close($insertquery);

    mysqli_close($con);
?>

ServiceRequest.java

    public class ServiceRequests {

    ProgressDialog progressDialog;
    public static final int CONNECTION_TIMEOUT = 15000;
    public static final String SERVER_ADDRESS = "https://address.com/";

    public ServiceRequests(Context context){
        progressDialog = new ProgressDialog(context);
        progressDialog.setCancelable(false);
        progressDialog.setTitle("Processing");
        progressDialog.setMessage("Please wait..");

    }

    public void storeDataInBackground (Contact contact, GetUserCallback callback){

        progressDialog.show();
        new storeDataAsynTask(contact, callback).execute();
    }



    public class storeDataAsynTask extends AsyncTask<Void,Void,Void>{

        Contact contact;
        GetUserCallback callback;

        @Override
        protected Void doInBackground(Void... voids) {

               URL url = new URL(SERVER_ADDRESS + "Register.php");
               HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
               conn.setReadTimeout(10000);
               conn.setConnectTimeout(15000);
               conn.setRequestMethod("POST");
               conn.setDoInput(true);
               conn.setDoOutput(true);

               Uri.Builder builder = new Uri.Builder()
                       .appendQueryParameter("name", contact.name)
                       .appendQueryParameter("email", contact.email)
                       .appendQueryParameter("password", contact.password);
               String query = builder.build().getEncodedQuery();

               OutputStream os = conn.getOutputStream();
               BufferedWriter writer = new BufferedWriter(
                       new OutputStreamWriter(os, "UTF-8"));
               writer.write(query);
               writer.flush();
               writer.close();
               os.close();

               conn.connect();
           }
           catch (Exception e)
           {

           }

            return null;
        }



        public storeDataAsynTask(Contact contact, GetUserCallback callback){
            this.contact=contact;
            this.callback=callback;


        }
        @Override
        protected void onPostExecute(Void v) {
            progressDialog.dismiss();
            callback.done(null);

            super.onPostExecute(v);
        }

    }
}

GetUserCallback接口:

public interface GetUserCallback {
    public abstract void done(Contact returnedContact);
}

RegisterActivity(OnClick方法):

Button mEmailSignUpButton = (Button) findViewById(R.id.email_sign_up_button);
        mEmailSignUpButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {

                String name = mNameView.getText().toString();
                String email = mEmailView.getText().toString();
                String password = mPasswordView.getText().toString();
                String confirmPassword = mConfirmPasswordView.getText().toString();

                Contact contact;
                if(password.equals(confirmPassword))
                {
                    contact = new Contact(name,email,password);
                    ServiceRequests serviceRequests = new ServiceRequests(RegisterActivity.this);
                    serviceRequests.storeDataInBackground(contact, new GetUserCallback() {
                        @Override
                        public void done(Contact returnedContact) {
                            Intent intent = new Intent(RegisterActivity.this,LoginActivity.class);
                            startActivity(intent);
                        }
                    });
                }
                else
                {
                    Toast.makeText(RegisterActivity.this,"Password did not match", Toast.LENGTH_LONG).show();
                }
            }
        });

数据库未获得更新。 没有错误显示。 请有人建议我正确连接并将值传递给php吗?

0 个答案:

没有答案