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

来源:互联网 发布:php面试常用函数 编辑:程序博客网 时间:2024/05/14 16:24

初学者,(没学过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://download.csdn.net/detail/zhenzhen9310/9493224

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


0 0
原创粉丝点击