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 ...
随机推荐
- linux awk,sort,uniq,wc,cut命令详解
1.awk awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息 $ 表示当前行 $ 表示第一列 NF 表示一共有多少列 $NF 表示最 ...
- hdu1242 Rescue DFS(路径探索题)
这里我定义的路径探索题指 找某路能够到达目的地,每次走都有方向,由于是探索性的走 之后要后退 那些走过的状态都还原掉 地址:http://acm.hdu.edu.cn/showproblem.php? ...
- 第14章 Linux账号管理与ACL权限设置
Linux的账号与用户组 用户标识符:UID与GID 每一个文件都有一个所有者ID和用户组ID,当我们需要查看文件属性时,系统会根据/etc/passwd和/etc/group的内容,找到对应UID和 ...
- 软工网络15团队作业4——Alpha阶段敏捷冲刺-6
一.当天站立式会议照片: 二.项目进展 昨天已完成的工作: 完成对账单的编辑,删除等操作,以及开始服务器的编写工作 明天计划完成的工作: 记账功能基本完成,进一步优化功能与完善服务器 工作中遇到的困难 ...
- SSH框架配置
--------------------------------applicationContext.xml-------------------------------- <?xml vers ...
- android android.mk中:= ?= +=之间的区别
转自:http://blog.csdn.net/love_xsq/article/details/50395138 在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什 ...
- pyspark在windows中的安装
0.安装python,我用的是python2.7.13 1.安装jdk 一定要安装1.7以上的版本,安装低版本会报下面的错误 java.lang.NoclassDefFoundError 安装后不用手 ...
- c# AOP 文章地址
AOP:aspect oriented programing 面向切面编程.大概就是在程序的指定地方,可以做拦截然后插入执行指定的一段程序,这种模式在写日志,权限检查等操作很有用,这些操作都是固定的处 ...
- MySQL 分组排序问题
SQL好久不写了,有些生疏了,一个分组排序问题想了快半天,整理下. 学生表 CREATE TABLE `t_student` ( `id` bigint(20) NOT NULL AUTO_INCRE ...
- java面试及答案
优秀总结博客 mybatis总结 java并发包相关 一.Java基础 1.String类为什么是final的. 2.HashMap的源码,实现原理,底层结构. hashmap3.反射中,Class. ...