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值。
最新文章
- 把我的Java项目部署到Linux系统
- asp双表查询
- [转载]JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
- 《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇03:暂停游戏》
- 167. Two Sum II - Input array is sorted
- 分辨率验证工具 - 【Firesizer】的使用
- 在Laravel中使用swoole来取代nginx作为http服务器
- Error 1313: RETURN is only allowed in a FUNCTION SQL Statement
- TCP建立连接三次握手和释放连接四次握手
- c/c++ 标准库 bind 函数 详解
- mysql limit 性能问题分析
- Django Context对象 + 过滤器 + 标签
- shell 终端常用插件
- java容器Container和组件Component之GUI
- Eclipse编辑XML自动提示(zz)
- C#实现U盘检查,并写入文件
- Oracle 数据库实现数据更新:update、merge
- ltnmp 3.0 发布,PHP 开发环境一键安装包
- MYSQL注入天书之开天辟地
- 第二百四十九节,Bootstrap附加导航插件