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. music, let's go

    最近研究个新玩意,叫window.AudioContext;不懂?没关系,我也是才接触,这完全可以说个全新领域,这玩意干啥的?顾名思义,媒体上下文,也就是你媒体的数据分析,就是一串数据啊?那有啥用呢? ...

  2. lintcode-426-恢复IP地址

    426-恢复IP地址 给一个由数字组成的字符串.求出其可能恢复为的所有IP地址. 样例 给出字符串 "25525511135",所有可能的IP地址为: [ "255.25 ...

  3. jdbc 2.0

    1.Statement接口不能接受参数 2.PreparedStatement接口在运行时接受输入参数 3.CallableStatement接口也可以接受运行时输入参数,当想要访问数据库存储过程时使 ...

  4. selenium Object Page 设计模式理解及实现!

    Page Object模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,其中包含页面中需要测试的元素(按钮,输入框,标题 等),这样在Selenium测试页面中可以通 ...

  5. 【APS.NET Core】- launchSettings.json

    launchSettings.json文件为一个ASP.NET Core应用保存特有的配置标准,用于应用的启动准备工作,包括环境变量,开发端口等.在launchSettings.json文件中进行配置 ...

  6. (转)ActiveMQ的重连机制

    花了一天的时间,终于搞明白了我的疑问. failover://(tcp://localhost:6168)?randomize=false&initialReconnectDelay=100& ...

  7. 小记IptabLes和IptabLex病毒清理过程

    去年有台Linux服务器被黑了,看了500万行日志(现在觉得当时好厉害呀),反正当时的日志文件有700Mb以上大.前两天师兄告诉我,信息中心的老师给他说我们有台服务器应该是被人入侵了,当作内网的跳板, ...

  8. IE 代理服务器设置程序实现

    IE 代理服务器设置程序实现 分类: Delphi2003-08-02 18:42 1398人阅读 评论(0) 收藏 举报 服务器ieinternetstringconstructordelphi 本 ...

  9. 【loj6307】「雅礼国庆 2017 Day1」Clique 贪心

    题目描述 数轴上有 $n$ 个点,第 $i$ 个点的坐标为 $x_i$ 权值为 $w_i$ .两个点 $i,j$ 之间存在一条边当且仅当 $|x_i−x_j|\le w_i+w_j$ . 你需要求出这 ...

  10. bug:margin合并

    demo1和demo2存在margin合并问题:外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距.合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者.弥补方案:bfc; 添加一 ...