首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓VMD MySQL插入和显示对话框

安卓VMD MySQL插入和显示对话框
EN

Stack Overflow用户
提问于 2012-12-07 18:21:21
回答 2查看 248关注 0票数 5

我正在尝试从Android应用程序中做一个简单的插入。我可以通过连接php从浏览器运行?entry="Sample value from browser"脚本,但是当我在Android上运行应用程序时,就没有插入了。

下面是我调用使用JSON并实现AsyncTask的insert类的地方:

代码语言:javascript
复制
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脚本:

代码语言:javascript
复制
<?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_logerror_log中没有请求。有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2013-01-29 13:59:58

我认为您已经在本地服务器上存储了php脚本。因此,在初始化时使用这个HttpPost 10.0.2.2,而不是您机器的ip地址。它的本地主机相当于android虚拟设备。

票数 0
EN

Stack Overflow用户

发布于 2013-01-29 20:29:09

这不是这个特定问题的问题。问题是在php.ini中有一个神奇的引号设置

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13768810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档