0
所以我有一個類註冊,我想註冊用戶信息到外部數據庫,但由於某種原因它不會插入,請指出錯誤,如果有任何或告訴我最新失蹤?用Android將信息插入到外部數據庫中
這是PHP文件,其中我把它上傳到網絡主機
<?php
$con = mysqli_connect("localhost","MY_username","My_Password","My_Databas");//my_user, my_password, my_database
$BN = $_POST["BadgeNumber"];
$name = $_POST["Name"];
$EN = $_POST["ExtensionNumber"];
$PN = $_POST["PhoneNumber"];
$email = $_POST["Email"];
$statement = mysqli_prepare($con, "INSERT INTO Register (BadgeNumber, Name, ExtensionNumber, PhoneNumber, Email)
VALUES (?, ?, ?, ?, ?)");
mysqli_stmt_bind_param($statement, "isiis", $BN, $name, $EN, $PN, $email);
mysqli_stmt_execute($statement);
mysqli_stmt_close($statement);
mysqli_close($con); ?>
這是所有的連接,並插入正在發生的階級和我寫的域名作爲服務器地址
public class ServerRequests {
private static final String TAG ="ServerRequests";
ProgressDialog progressDialog;
public static final int CONNECTION_TIMEOUT = 1000 * 15;
public static final String SERVER_ADDRESS = "http://92211app.netne.net/";
public ServerRequests(Context context){
progressDialog = new ProgressDialog(context);
progressDialog.setCancelable(false);
progressDialog.setTitle("Processing");
progressDialog.setMessage("Please wait...");
}
public void StoreUserDataInBackground(User user, GetUserCallback userCallback){
progressDialog.show();
new StoreUserDataAsyncTask(user, userCallback).execute();
}
public class StoreUserDataAsyncTask extends AsyncTask<Void, Void, Void>{
User user;
GetUserCallback userCallback;
public StoreUserDataAsyncTask(User user, GetUserCallback userCallback){
this.user = user;
this.userCallback = userCallback;
}
@Override
protected Void doInBackground(Void... params) {
//setting the NameValuePairs
ArrayList<NameValuePair> dataToSend = new ArrayList<>();//stores key and value
dataToSend.add(new BasicNameValuePair("BadgeNumber",user.getBadgeNumber()+""));
dataToSend.add(new BasicNameValuePair("Name",user.getName()));
dataToSend.add(new BasicNameValuePair("ExtensionNumber",user.getExtensionNumber()+""));
dataToSend.add(new BasicNameValuePair("PhoneNumber",user.getPhoneNumber()+""));
dataToSend.add(new BasicNameValuePair("Email",user.getEmail()));
Log.i(TAG,"StoreUserDataAsyncTask method BadgeNumber: "+user.getBadgeNumber()+" Name: "+user.getName());
HttpParams httpRequestParams = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpRequestParams, CONNECTION_TIMEOUT);//the time we want to wait until the pulse is executed (stop connection)
HttpConnectionParams.setSoTimeout(httpRequestParams, CONNECTION_TIMEOUT);//the time we want to wait to receive anything from the server
HttpClient client = new DefaultHttpClient(httpRequestParams);//allows us to make requests to the server, we passed httpRequestParams so the client would know the connection timeout
HttpPost post = new HttpPost(SERVER_ADDRESS + "Register.php");
try{
post.setEntity(new UrlEncodedFormEntity(dataToSend));
client.execute(post);
Log.i(TAG,"try and catch");
}catch(Exception e){
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void aVoid){
progressDialog.dismiss();
userCallback.done(null);
Log.i(TAG,"onPostExecute");
super.onPostExecute(aVoid);
}
}
這是接口
interface GetUserCallback {
public abstract void done(User returnedUser);
}
這裏就是我所說的StoreUserDataInBackground方法一旦按鈕被點擊
RegisterButton.setOnClickListener(new View.OnClickListener() {
//InputStream is = null;
@Override
public void onClick(View v) {
int BN = Integer.parseInt(BadgeNumberView.getText().toString());
String name = NameView.getText().toString();
int EN = Integer.parseInt(ExtensionNumberView.getText().toString());
int PN = Integer.parseInt(PhoneNumberView.getText().toString());
String Email = EmailView.getText().toString();
User user = new User(BN, name, EN, PN, Email);
registerUser(user);
}
});
private void registerUser(User user){
ServerRequests serverRequests = new ServerRequests(this);
serverRequests.StoreUserDataInBackground(user, new GetUserCallback() {
@Override
public void done(User returnedUser) {
startActivity(new Intent(MainActivity.this, RequestActivity.class));
}
});
}
究竟是怎麼回事? http連接是否擊中了URI?該PHP無法插入數據?你甚至沒有進入HTTP連接?不要只是轉儲代碼頁面,告訴我們實際的問題是什麼 –
@GabeSechan我知道我很抱歉,但這只是因爲我不知道究竟發生了什麼,因爲logcat沒有顯示任何錯誤或指示某事,所以這就是爲什麼我有點沮喪,因爲我不知道實際問題是什麼! – lna1994
你有沒有在調試器中運行它來找出它? –