我正在尝试在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吗?