Android通过php插入查询SQL数据库
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数据库的更多相关文章
- Android - 数据存储 -在SQL数据库中保存数据
对于重复的或结构化的数据,保存到数据库中是很好的选择,比如联系人信息.这里假设你对SQL数据库大体上了解然后帮助你学习Android上的SQLite数据库.在Android数据库上需要用到的API可以 ...
- 一个最简单的使用Entity Framework 查询SQL 数据库的例子
1.ADO.NET 3.5 Entity Framework是随着.net framework 3.5一起发布的,确认开发环境版本是大于等于3.5版本 2.确认已经安装了ADO.NET 3.5 Ent ...
- 查询sql数据库中表占用的空间大小
最近在给一家客户做系统维护时,需要查看数据库表的大小,相关的sql如下: 先在左上角下拉框中选对要查的数据库再执行以下语句 1. exec sp_spaceused '表名' --( ...
- 查询sql表列名
--查询sql 查询表列名Select Name FROM SysColumns Where id=Object_Id('Tab') --查询sql数据库表列名称select name from sy ...
- Android adb使用sqlite3对一个数据库进行sql查询
sqlite是Android下集成的一个轻量级数据库,我们可以通过adb程序进入数据库命令行,对数据进行查询,具体操作如下: ①打开windows的cmd ②输入adb shell.此时进入了该安卓系 ...
- 【Android Developers Training】 26. 在SQL数据库中保存数据
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- Android SQL数据库应用实践 “问题点”“疑难点”“解析”
应用 Android SQL 数据库时,遇到的问题: 场景1:Android SQL查询后,获取到Cursor并查询数据:遇到以下问题:"android.database.CursorInd ...
- Android学习笔记——保存数据到SQL数据库中(Saving Data in SQL Databases)
知识点: 1.使用SQL Helper创建数据库 2.数据的增删查改(PRDU:Put.Read.Delete.Update) 背景知识: 上篇文章学习了保存文件,今天学习的是保存数据到SQL数据库中 ...
- SQL数据库查询一列数据返回一行
SQL:数据库合并列数据:遇到一个更新的问题 想要把查询到的数据某一列拼接成字符串形式返回用的是SQL数据库中的STUFF函数比如 查询到的表(u_College)如下Id Name Age Clas ...
随机推荐
- ElasticSearch之CURL操作(有空再去整理)
https://www.cnblogs.com/jing1617/p/8060421.html ElasticSearch之CURL操作 CURL的操作 curl是利用URL语法在命令行方式下工 ...
- Beta发布——美工+文案
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2408项目地址:https://coding.net/u/wuyy694/ ...
- Kotlin 学习笔记(一)
(Kotlin 学习笔记的文档结构基本按照 Java 核心技术一书的目录排列) 基本程序设计结构 数据类型 数字 类型 宽度 Double 64 Float 32 Long 64 Int 32 Sho ...
- C++寒假计划
课程 西北工业大学的c++程序设计 理由 这个课程里的内容都比较详细,能比较全面的讲解C++,我们是从C过渡到C++的,所以我之前看了阚道洪的面向对象程序设计的课程,他讲解了两者的差别,还有C++对C ...
- HDU 1277 Nested Dolls
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1677 题意: 玩俄罗斯套娃,问最后至少还剩几个. 题解: 这题可以和拦截导弹做对比,因为这里是二维的 ...
- iOS- Swift:如何使用iOS8中的UIAlertController
1.前言 在前段时间手机QQ:升级iOS8.3后,发图就崩的情况, 就是因为iOS8更新UIAlertController后,仍然使用UIAlertview导致的 具体原因分析 这个可以看腾讯团队发出 ...
- IP ,路由
ifconfig 命令 ip信息 enp0s3: flags=4163<UP(已经启用),BROADCAST(支持广播),RUNNING,MULTICAST(支持多播)> ...
- 虚拟机下安装CentOS6.5系统教程
虚拟机下安装CentOS6.5系统教程 时间:2014-12-09 01:40来源:linuxdown.net 作者:linuxdown.net 举报 点击:15315次 其实通过VM安装虚拟机还是蛮 ...
- 【bzoj5197】[CERC2017]Gambling Guide 期望dp+堆优化Dijkstra
题目描述 给定一张n个点,m条双向边的无向图. 你要从1号点走到n号点.当你位于x点时,你需要花1元钱,等概率随机地买到与x相邻的一个点的票,只有通过票才能走到其它点. 每当完成一次交易时,你可以选择 ...
- struts2拦截器和过滤器区别
1.拦截器是基于java反射机制的,而过滤器是基于函数回调的.2.过滤器依赖于servlet容器,而拦截器不依赖于servlet容器.3.拦截器只能对Action请求起作用,而过滤器则可以对几乎所有请 ...