PHP代码

<?php

header("Content-type: text/html; charset=gb2312");

$serverName = "localhost"; //数据库服务器地址

$uid = "Mssqla"; //数据库用户名

$pwd = "123456"; //数据库密码

$connectionInfo = array("UID"=>$uid, "PWD"=>$pwd, "Database"=>"mysql");

$conn = sqlsrv_connect( $serverName, $connectionInfo);

if($conn == false){

    echo "连接数据库失败";

}else{

    echo "连接数据库成功";

}

$name = $_POST['name'];

$pass = $_POST['pass'];

$security = $_POST['security'];

print($name);



sqlsrv_query($conn, "insert into android (name,pass,security) values('$name','$pass','$security')");



//定义好一个数组。PHP中array相当于一个数据字典

$data =array();

//定义一个类,用到存放从数据库中取出的数据.

class User{

    public $name;

    public $pass;

}



$query = sqlsrv_query($conn, "select * from myuser");

while($row = sqlsrv_fetch_array($query)){

    $user = new User();

    $user->name = $row['name'];

    $user->pass = $row['pass'];

    $data[] = $user;

}

$json = json_encode($data);  //把数据转换为JSON数据

print("{".'"user"'.":".$json."}");



sqlsrv_close($conn);

?>

Android代码

public static final int ISLOGIN =1;

private void sendRequestWithHttpClient(){

                new Thread(new Runnable() {

                    @Override

                    public void run() {

                        //创建键/值组列表

                        List<NameValuePair> pairs = new ArrayList<NameValuePair>();

                        pairs.add(new BasicNameValuePair("name", qq_name.getText().toString()));

                        pairs.add(new BasicNameValuePair("pass", qq_pass.getText().toString()));

                        pairs.add(new BasicNameValuePair("security", security.getText().toString()));

                        try{

                            HttpClient httpClient = new DefaultHttpClient();   //定义HttpClient

                            HttpPost httpPost = new HttpPost("http://.........../android/registered.php");  //实例化HTTP方法

                            UrlEncodedFormEntity entity = new UrlEncodedFormEntity(pairs,"gb2312");

                            httpPost.setEntity(entity);

                            HttpResponse httpResponse = httpClient.execute(httpPost);       //执行请求

                            //处理返回数据

                            HttpEntity httpentity =httpResponse.getEntity();

                            InputStream is =httpentity.getContent();

                            BufferedReader reader = new BufferedReader(

                                    new InputStreamReader(is,"gb2312"));

                            StringBuilder 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();

Message message = new Message();

                             message.what = ISLOGIN;

                             handler.sendMessage(message); // 将Message对象发送出去,采用异步处理机制

                            

                            if(httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK){

                            //    String result = EntityUtils.toString(httpResponse.getEntity());

                            }else{

                            }

                        }catch(UnsupportedEncodingException e){

                            e.printStackTrace();

                        }catch(ClientProtocolException e){

                            e.printStackTrace();

                        }catch (IOException e) {

                            e.printStackTrace();

                        }

                    }

                }).start();

            }

//异步处理的代码

@SuppressLint("HandlerLeak")

    private Handler handler = new Handler() {

        public void handleMessage(Message msge) {

            switch (msge.what) {

            case ISLOGIN:

// 在这里可以进行UI操作

Toast.makeText(LoginActivity.this, "account or password    is invalid",

                Toast.LENGTH_SHORT).show();

                break;

            default:

                break;

            }

        }

    };

注意:重新开启一个线程处理HttpClient请求,不要在UI线程处理,注意编码方式,如果出现乱码,数据库插入操作失败,将返回null值。

Android通过php插入查询SQL数据库的更多相关文章

  1. Android - 数据存储 -在SQL数据库中保存数据

    对于重复的或结构化的数据,保存到数据库中是很好的选择,比如联系人信息.这里假设你对SQL数据库大体上了解然后帮助你学习Android上的SQLite数据库.在Android数据库上需要用到的API可以 ...

  2. 一个最简单的使用Entity Framework 查询SQL 数据库的例子

    1.ADO.NET 3.5 Entity Framework是随着.net framework 3.5一起发布的,确认开发环境版本是大于等于3.5版本 2.确认已经安装了ADO.NET 3.5 Ent ...

  3. 查询sql数据库中表占用的空间大小

    最近在给一家客户做系统维护时,需要查看数据库表的大小,相关的sql如下: 先在左上角下拉框中选对要查的数据库再执行以下语句 1. exec sp_spaceused '表名'          --( ...

  4. 查询sql表列名

    --查询sql 查询表列名Select Name FROM SysColumns Where id=Object_Id('Tab') --查询sql数据库表列名称select name from sy ...

  5. Android adb使用sqlite3对一个数据库进行sql查询

    sqlite是Android下集成的一个轻量级数据库,我们可以通过adb程序进入数据库命令行,对数据进行查询,具体操作如下: ①打开windows的cmd ②输入adb shell.此时进入了该安卓系 ...

  6. 【Android Developers Training】 26. 在SQL数据库中保存数据

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  7. Android SQL数据库应用实践 “问题点”“疑难点”“解析”

    应用 Android SQL 数据库时,遇到的问题: 场景1:Android SQL查询后,获取到Cursor并查询数据:遇到以下问题:"android.database.CursorInd ...

  8. Android学习笔记——保存数据到SQL数据库中(Saving Data in SQL Databases)

    知识点: 1.使用SQL Helper创建数据库 2.数据的增删查改(PRDU:Put.Read.Delete.Update) 背景知识: 上篇文章学习了保存文件,今天学习的是保存数据到SQL数据库中 ...

  9. SQL数据库查询一列数据返回一行

    SQL:数据库合并列数据:遇到一个更新的问题 想要把查询到的数据某一列拼接成字符串形式返回用的是SQL数据库中的STUFF函数比如 查询到的表(u_College)如下Id Name Age Clas ...

随机推荐

  1. 2016-6-2-第二个sprint

    1.开始一个新的冲刺: 起止:2016.6.1~2016.6.14 ProductBacklog:继续向下细化 Sprint 计划会议:确定此次冲刺要完成的目标 Sprint Backlog:新的冲刺 ...

  2. 03慕课网《vue.js2.5入门》——Vue-cli的安装,创建webpack模板项目

    安装Vue-cli 第一种 貌似不可以,然后用了第二种,但是重装系统后,第二种不能用了,用了第一种可以 # 全局安装vue -cli命令npm install --global vue-cli # 创 ...

  3. Alpha事后诸葛会议

    [设想和目标] Q1:我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? "小葵日记"是为了解决18-30岁年轻用户在记录生活时希望得到一美体验友好 ...

  4. J2EE Oa项目上传服务器出现的乱码解决过程

    (= =)搞了许久觉得有必要记下来.. 由于我本地的mysql都设置好了,但是服务器的又不能去改它 毕竟还有其他人要用- -: 所以只能是我建的时候去设置一下了, 首先先建数据库 ,表;; creat ...

  5. SGU 126 Boxes(模拟题|二进制)

    Translate:Sgu/126 126. 盒子 time limit per test: 0.5 sec. memory limit per test: 4096 KB 有两个盒子. 第一个盒子里 ...

  6. haproxy调度算法

    调度算法详解 用balance指令指明调度算法, 例如:balance roundrobin   1:roundrobin :动态轮询算法,基于后端服务器的总权重做轮询,后端的服务器数量限制在4095 ...

  7. 201621123037 《Java程序设计》第14周学习总结

    作业14-数据库 标签(空格分隔): Java 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2. 使用数据库技术改造你的系统 2.1 简述如何使用数据库技术改造 ...

  8. [翻译]Android官方文档 - 通知(Notifications)

    翻译的好辛苦,有些地方也不太理解什么意思,如果有误,还请大神指正. 官方文档地址:http://developer.android.com/guide/topics/ui/notifiers/noti ...

  9. Django之ORM其他骚操作

    Django ORM执行原生SQL # extra # 在QuerySet的基础上继续执行子语句 # extra(self, select=None, where=None, params=None, ...

  10. [LeetCode] [LeetCode] Populating Next Right Pointers in Each Node II

    Follow up for problem "Populating Next Right Pointers in Each Node". What if the given tre ...