php - Android和PHP连接到MySQL数据库

标签 php android mysql connection

我有以下代码,我正在努力使它工作。java文件中有两个错误,我找不到修复方法。
这是我的MySQLData.java文件

package com.example.qosmetre2;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;

import org.apache.http.HttpEntity;
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.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.net.ParseException;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 

import org.apache.http.NameValuePair; 
import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import android.app.ListActivity; 
import android.app.ProgressDialog; 
import android.content.Intent; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ListAdapter; 
import android.widget.ListView; 
import android.widget.SimpleAdapter; 
import android.widget.TextView;

public class MySQLData extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    String result = null;
    InputStream is = null;
    StringBuilder sb=null;
    String result=null;
    //http post

    try{
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://localhost/android_test/fetch_data2.php");
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity = response.getEntity();
        is = entity.getContent();
    }catch(Exception e){
        Log.e("log_tag", "Error in http connection"+e.toString());
    }

    //convert response to string

    try{
        BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
        sb = new StringBuilder();
        sb.append(reader.readLine() + "\n");
        String line="0";
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }

        is.close();
        result=sb.toString();

    }catch(Exception e){

        Log.e("log_tag", "Error converting result "+e.toString());
    }
    //paring data

    String nam;
    int rec_pow;
    int tow;
    int stat;

    try{
    JSONArray jArray = new JSONArray(result);
    JSONObject json_data=null;

    for(int i=0;i<jArray.length();i++){
            json_data = jArray.getJSONObject(i);
            nam=json_data.getString("name");
            rec_pow=json_data.getInt("recieved_power");
            tow=json_data.getInt("tower");
            stat=json_data.getInt("status");

    }

    }catch(JSONException e1){
        Toast.makeText(getBaseContext(), "Could not Parse Data", Toast.LENGTH_LONG).show();
    }catch (ParseException e1){
        e1.printStackTrace();

    }

}

}

以下两行有错误:
String result=null;
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

第一个错误是重复的局部变量结果,第二个错误是nameValuePairs无法解析为变量。
我也有一个php文件,我把它放在我的wamp服务器上,我希望显示在我的本地服务器上的信息在应用程序中。我在某个地方读到过,我可能需要通过端口转发,以便可以通过互联网从应用程序访问,但我不知道。在修复错误之前,应用程序不会运行。
这是我的PHP文件fetch_data2.PHP
  <?php
mysql_connect("888888","8888888","*******");
mysql_select_db("*******");
$q=mysql_query("SELECT * FROM users");


 while($row=mysql_fetch_assoc($q))
 $output[]=$row;

  print(json_encode($output));

  mysql_close();

?>

最佳答案

在查看您的代码时,我确实看到变量result被定义了两次,但在任何地方都没有看到nameValuePairs被定义。我认为编译器是正确的:})

关于php - Android和PHP连接到MySQL数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15823592/

相关文章:

php - 如何检查Laravel Hash是否对字符串进行哈希处理?

php - 如何通过命令行运行 php 脚本(并在注销后保持运行)

php - 如何在无法重启的服务器(Apache)上使用gettext?

android - QuickBlox:发送消息不会在具有相同登录名的其他设备上更新

mysql - 删除时删除级联MySQL

PHP 和 MySQL,当查询没有产生任何行时返回什么?

php - 动态更改路由器文件 Symfony2

Material Design 中只有 Android 的月份和年份选择器

android - 如何在android studio中移动和重命名项目?

python - Python MySQL mysql.connector使用column_names属性构建返回