Android通过PHP连接mysql(带源码)

初学者,(没学过java,也没学过php , 还没学过mysql),凭着仅有的一点C语言基础,傻头傻脑的就干起来了。

走了很多弯路,也没有人教,真艰辛啦!

想知道android 怎么和mysql连接的,phpstudy  ( 集成了mysql 和apache) + eclipse平台(as还在过渡期,电脑配置low!)

源码:http://download.csdn.net/detail/zhenzhen9310/9493224

1. 新建new 数据库,新建一个表格collection ,collection.sql文件如下

CREATE TABLE IF NOT EXISTS `collection` (
  `collectid` int(11) NOT NULL AUTO_INCREMENT,
  `sid` int(11) NOT NULL,
  `pname` varchar(50) CHARACTER SET utf8 NOT NULL DEFAULT '',
  PRIMARY KEY (`collectid`,`pname`,`sid`)
) ENGINE=MyISAM  DEFAULT CHARSET=gbk AUTO_INCREMENT=3 ;

INSERT INTO `collection` (`collectid`, `sid`, `pname`) VALUES
(1, 1, 'lisi'),
(2, 2, 'zhangsan');




2. 在服务器根目录(WWW)下新建一个test.php文件,文件内容如下:(添加注释的地方请自行修改)

<?php
$link=mysql_connect("127.0.0.1","root","zhen");  //ip地址,用户名和密码 
mysql_query("SET NAMES utf8");
mysql_select_db("new",$link); //数据库名
$sql=mysql_query("select * from collection ",$link); //表名
while($row=mysql_fetch_assoc($sql))
$output[]=$row;
print(json_encode($output));
mysql_close();
?>



3. 新建一个Android Java Project

 <!-- <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="19" /> --> //屏蔽掉

<uses-permission android:name="android.permission.INTERNET"/> //允许网络访问权限

主要程序
 
 // http get
              try {
                  HttpClient httpclient = new DefaultHttpClient();
                  HttpGet httpget = new HttpGet(
                         "http://192.168.0.108/new/collection .php");      //ip地址不能设置为127.0.0.1, 手机上设置为电脑的ip地址,模拟器可以用android内置IP 10.0.2.2
                  HttpResponse response = httpclient.execute(httpget);
                  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();
                  Log.d("log_tag", result);    //获取的所有数据
              } catch (Exception e) {
                  Log.e("log_tag", "Error converting result " + e.toString());
              }
              // paring data
              int ct_id;
              String ct_name;
              try {
                  jArray = new JSONArray(result);
                  JSONObject json_data = null;
                  for (int i = 0; i < jArray.length(); i++) {
                     json_data = jArray.getJSONObject(i);
                     ct_id = json_data.getInt("sid");   //将键值对取出来
                     ct_name = json_data.getString("pname");  //将键值对取出来
                     tv.append(ct_name + " \n");
                  }
              } catch (JSONException e1) {
                  // Toast.makeText(getBaseContext(), "No City Found"
                  // ,Toast.LENGTH_LONG).show();
              } catch (ParseException e1) {
                  e1.printStackTrace();
              }


php文件打开如图所示:

点击click以后,Android会向服务器发送一个Http Get请求,服务器从mysql中读取数据后,传送给Android客户端,客户端编码数据包,然后返回如下结果:


参考自:http://blog.sina.com.cn/s/blog_6923201d01011t6h.html#post


  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值