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. 我是IT小小鸟读书笔记

    阅读了我是IT小小鸟后发现,自己开发程序是真的很苦难的,在现在这个空对空的时期,我们学习到大部分的全都是理论知识,而没有真正的去进行实践.没有经过实践,我们在程序开发过程中也就无法发现自身的困难. 在 ...

  2. Oracle win64_12g 安装

    1.Oracle win64_12g 安装 1.下载安装包:这里需要自己注册一下,然后就可以登录下载软件了. 下载地址: http://www.oracle.com/technetwork/datab ...

  3. Java clone() 浅拷贝 深拷贝

    假如说你想复制一个简单变量.很简单: int apples = 5; int pears = apples; 不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short, ...

  4. 【Linux 命令】- tail命令

    linux tail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端,通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新,tail会自己主动刷新,确保你看到最新的档 ...

  5. 使用fabric1.14.0和fabric2.4.0

    fabric1.14.0(支持Python2.5-2.7版本): from  fabric.api import * env.gateway = '192.168.181.2'            ...

  6. 这套C#编码规范写不错

    自己总结的C#编码规范--1.命名约定篇:http://www.cnblogs.com/luzhihua55/p/CodingConventions1.html 自己总结的C#编码规范--2.命名选择 ...

  7. javascript之彻底理解valueOf, toString

    参与运算的都是简单类型(一般就字符串和数字), 复杂类型是不参与运算的. ***当对象(非简单类型)用作键时,会先调用toString()方法把对象转化成字符串 var a = {},     b = ...

  8. react-router之代码分离

    概念 无需用户下载整个应用之后才能访问访问它.即边访问边下载.因此我们设计一个组件<Bundle>当用户导航到它是来动态加载组件. import loadSomething from 'b ...

  9. 第112天:javascript中函数预解析和执行阶段

    关于javascript中的函数:  1.预解析:把所有的函数定义提前,所有的变量声明提前,变量的赋值不提前  2.执行 :从上到下执行,但有例外(setTimeout,setInterval,aja ...

  10. BZOJ 1923 外星千足虫(bitset优化线性基)

    题意:给出m次n个千足虫的足数信息,确定在第几次测试后可以确定每个千足虫的来历. 我们可以观察到每个测试结果具有异或后依然成立的性质,于是实际上我们只需要从头到尾确定有n个线性相关的向量是在哪一个测试 ...