私はAndroidアプリケーションから簡単な挿入をしようとしています。 ?entry="Sample value from browser"
を連結して私のphp
スクリプトをブラウザから実行できますが、私がAndroidからアプリケーションを実行すると、挿入されません。私はJSONを使用し、AsyncTaskを実装して挿入するクラスを呼び出していますのはここAndroid VMD MySQLの挿入と表示ダイアログ
は次のとおりです。
package us.jtaylorok.android.sqlite.first;
import java.util.ArrayList;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.util.Log;
import android.widget.Toast;
public class RemoteInsert extends AsyncTask<Void, String,String >{
protected String TAG;
protected Context context;
protected String input;
protected ProgressDialog progressDialog;
public RemoteInsert(String i,Context c){
this.input = i;
this.context = c;
}
protected void onPreExecute() {
//ProgressDialog progressDialog; // = new ProgressDialog(context);
//progressDialog=ProgressDialog.show(,"Please Wait..","Sending data to database", false);
progressDialog=ProgressDialog.show(context,"Please Wait..","Sending data to database", false);
}
@Override
protected String doInBackground(Void... params) {
try {
HttpClient httpclient = new DefaultHttpClient();
//HttpPost httppost = new HttpPost("http://localhost/index.php");
//HttpPost httppost = new HttpPost("http://10.253.8.88/patient_data/patient_data.php");
HttpPost httppost = new HttpPost("http://10.100.205.72/patient_data/patient_data.php");
ArrayList<NameValuePair> postParameters = new ArrayList<NameValuePair>();
postParameters.add(new BasicNameValuePair("entry", "Input from Android"));
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();
}
}
そして、ここでは私のPHPスクリプトです:
<?php
// mysql_connect("host","username","password");
mysql_connect("localhost","user1","mypassword");
mysql_select_db("test");
$entry_value = $_REQUEST["entry"];
$query = "INSERT INTO patientdata (entry) values (".$entry_value.");";
if(!mysql_query($query)) {
/*insert failed*/
}
mysql_close();
?>
私はそれを呼び出す場合は、再度、これは完璧に動作しますブラウザから取得しますが、AsyncTask
を実装する前に例外がスローされます。
私はAVDが追加を表示し、削除してもらうんが、私は私のapache2のaccess_log
またはerror_log
で要求がないことを行うとき。助言がありますか?
おそらくuser1に権限を与えたときに、localhost以外のものである必要があります。私は$ _REQUESTから値を取得してテキストファイルに書き込むことができたので、mysql_query関数は不安定であるか、または非難されていると思いますか、user1 @ localhost特権の問題が出てきますアンドロイド。私はアンドロイドでブラウザからPHPファイルを実行することからこれを動作させることさえできます。だから、どんな提案も大歓迎です。 –
php.iniの設定の問題を解決しました。 –