Android デバイスからMySQL database
. データベースが更新されていないようProgressDialog
で、私の中でAsyncTask
は完了していません。
だからここに私のPHPスクリプトがあります
<?php
mysql_connect("localhost","$username","$password") or die(mysql_error());
mysql_select_db("databaseName");
$pcn = $_POST['PCN'];
$date = $_POST['Date'] ;
$query_add="INSERT INTO data (`pcn`,`date`) VALUES ('$pcn','$date')";
$query_exec=mysql_query($query_add) or die(mysql_error());
mysql_close()
?>
次に私のJavaコード:
protected void onPreExecute() {
progressDialog=ProgressDialog.show(context,"Please Wait..","Sending data to database",false);
}
@Override
protected String doInBackground(String... params) {
try {
httpclient = new DefaultHttpClient();
httppost = new HttpPost("http://localhost/index.php");
ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("PCN", pcn));
postParameters.add(new BasicNameValuePair("Date", date));
httppost.setEntity(new UrlEncodedFormEntity(postParameters));
HttpResponse response = httpclient.execute(httppost);
Log.i("postData", response.getStatusLine().toString());
}
catch(Exception e)
{
Log.e(TAG, "Error: "+e.toString());
}
return "";
}
protected void onPostExecute(String result) {
progressDialog.dismiss();
Toast.makeText(context, "Finished", Toast.LENGTH_LONG).show();
}
私のマニフェストファイルで:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
これは LogCat からの出力です
07-04 12:52:34.025: E/SendToServer(15167): Error: org.apache.http.conn.HttpHostConnectException: Connection to http://localhost refused
使用できない場所をいくつか読みましhttp://localhost
たが、試しhttp://10.0.0.2
てみるとうまくいくはずです。
これを行う方法がわかりません。誰かが私を正しい方向に向けることができますか?
アップデート
10.0.2.2
LogCatの代わりに試してみると、次のようにLocalhost
出力されます。
Error: java.lang.IllegalStateException: Target host must not be null, or set in parameters. scheme=null, host=null, path=10.0.2.2
更新 2
never finishを使用するとhttp://10.0.2.2
、progressdialog
logcat も例外を表示しません。
更新 3
アプリがデータベースを更新しない理由はわかっていると思います。私の電話は、私のワークステーションとは別のワイヤレス ネットワークにあります..