从Android访问WAMP上的mySQL

时间:2014-07-16 23:44:13

标签: java php android webserver wamp

我无法理解如何配置WAMP以便Android应用程序对我用它创建的SQL数据库进行远程(非LAN)访问。 我知道我不应该直接从应用程序连接到数据库,而是使用PHP脚本查询数据库并返回结果。 我不理解的是这些是如何组合在一起的,我在哪里放置PHP脚本,如何访问它们,如何允许和连接到Web服务器以从数据库中获取数据。

我已经关注并搜索了很多这方面的教程,但他们似乎只处理在localhost中使用wamp,我可以在本地成功访问数据,但我很难知道如何设置所有这些以便我可以查询从我的Android设备上的任何互联网连接数据库。

非常感谢任何有关如何实现这一目标的建议。

1 个答案:

答案 0 :(得分:0)

您必须将php脚本上传到服务器:

Ex:您的php位于:myserver.com/myscript.php

在您的Android应用中,您发布了变量,并将PHP脚本与HttpClient连接:

    URL_TO_YOUR_SCRIPT = "myserver.com/myscript.php";
        ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    nameValuePairs.add(new BasicNameValuePair("userId", userId));

    HttpClient httpclient = new DefaultHttpClient();
    // specify the URL you want to post to
    HttpPost httppost = new HttpPost(URL_TO_YOUR_SCRIPT);
    try {
        // create a list to store HTTP variables and their values
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));
        HttpResponse response = httpclient.execute(httppost);
        StatusLine statusLine = response.getStatusLine();
        if (statusLine.getStatusCode() == HttpURLConnection.HTTP_OK) {
            HttpEntity getResponseEntity = response.getEntity();
            return getResponseEntity.getContent();

        } else {
            Log.e("ERROR", statusLine.getStatusCode() + "");
            HttpEntity getResponseEntity = response.getEntity();
            return getResponseEntity.getContent();
        }

    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

在你的php中:

<?
    $userId=$_REQUEST['userId'];
    ....
   // in general you return a json string to get status and result
?>