如何连接android和php mysql数据库

如题所述

参考下面代码及代码中的注释即可:

PHP代码:
 
conn.php是连接MySQL数据库的。代码如下:
<?php
$dbhost = "localhost:3306"; 
$dbuser = "root"; //我的用户名 
$dbpass = ""; //我的密码 
$dbname = "testlogin"; //我的mysql库名 
$cn = mysql_connect($dbhost,$dbuser,$dbpass) or die("connect error");
@mysql_select_db($dbname)or die("db error");
mysql_query("set names 'UTF-8'");
?>
login.php代码:
<?php
include ("conn.php");//连接数据库
$username=str_replace(" ","",$_POST['name']);//接收客户端发来的username;
$sql="select * from users where name='$username'";
$query=mysql_query($sql);
$rs = mysql_fetch_array($query);
if(is_array($rs)){
if($_POST['pwd']==$rs['password']){
echo "login succeed";
}else{
echo "error";
}
}
?>
 
class LoginHandler implements Runnable {
@Override
public void run() {
// TODO Auto-generated method stub
//get username and password;
userName = user_name.getText().toString().trim();
password = pass_word.getText().toString().trim();
//连接到服务器的地址,我监听的是8080端口
String connectURL="网站地址/text0/com.light.text/login.php/";
//填入用户名密码和连接地址
boolean isLoginSucceed = gotoLogin(userName, password,connectURL);
//判断返回值是否为true,若是的话就跳到主页。
if(isLoginSucceed){
Intent intent = new Intent();
intent.setClass(getApplicationContext(), HomeActivity.class);
startActivity(intent);
proDialog.dismiss();
}else{
proDialog.dismiss();
// Toast.makeText(ClientActivity.this, "登入错误", Toast.LENGTH_LONG).show();
System.out.println("登入错误");
}
}
}
//登入的方法,传入用户 å¯†ç  å’Œè¿žæŽ¥åœ°å€
private boolean gotoLogin(String userName, String password,String connectUrl) {
String result = null; //用来取得返回的String;
boolean isLoginSucceed = false;
//test
System.out.println("username:"+userName);
System.out.println("password:"+password);
//发送post请求
HttpPost httpRequest = new HttpPost(connectUrl);
//Post运作传送变数必须用NameValuePair[]阵列储存
List params = new ArrayList();
params.add(new BasicNameValuePair("name",userName));
params.add(new BasicNameValuePair("pwd",password));
try{
//发出HTTP请求
httpRequest.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
//取得HTTP response
HttpResponse httpResponse=new DefaultHttpClient().execute(httpRequest);
//若状态码为200则请求成功,取到返回数据
if(httpResponse.getStatusLine().getStatusCode()==200){
//取出字符串
result=EntityUtils.toString(httpResponse.getEntity());
ystem.out.println("result= "+result);
}
}catch(Exception e){
e.printStackTrace();
}
//判断返回的数据是否为php中成功登入是输出的
if(result.equals("login succeed")){
isLoginSucceed = true;
}
return isLoginSucceed;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-03-22
请注意:这里提供的代码只是为了能简单的连接Android项目和PHP,MySQL。不能把它作为一个标准或者安全编程实践。在生产环境中,理想情况下需要避免使用任何可能造成潜在注入漏洞的代码(比如MYSQL注入)。MYSQL注入是一个很大的话题,不可能用单独的一篇文章来说清楚,并且它也不在本文讨论的范围内,所以本文不以讨论。

  1. 什么是WAMP Server

  WAMP是Windows,Apache,MySQL和PHP,Perl,Python的简称。WAMP是一个一键安装的软件,它为开发PHP,MySQL Web应用程序提供一个环境。安装这款软件相当于安装了Apache,MySQL和PHP。或者,也可以使用XAMP。

  2. 安装和使用WAMP Server

  可以从http://www。wampserver。com/en/下载WAMP,安装完成之后,可以从开始->所有程序->WampServer->StartWampServer运行该程序。

  在浏览器中输入http://localhost/来测试你的服务器是否安装成功。同样的,也可以打开http://localhost/phpmyadmin来检验phpmyadmin是否安装成功。

  3. 创建和运行PHP项目

  现在,已经有一个能开发PHP和MYSQL项目的环境了。打开安装WAMP Server的文件夹(在我的电脑中,是C:\wamp\),打开www文件夹,为项目创建一个新的文件夹。必须把项目中所有的文件放到这个文件夹中。

  新建一个名为android_connect的文件夹,并新建一个php文件,命名为test.php,尝试输入一些简单的php代码(如下所示)。输入下面的代码后,打开http://localhost/android_connect/test.php,你会在浏览器中看到“Welcome,I am connecting Android to PHP,MySQL”(如果没有正确输入,请检查WAMP配置是否正确)

  test.php

  <?php
  echo"Welcome, I am connecting Android to PHP, MySQL";
  ?>4. 创建MySQL数据库和表

  在本教程中,我创建了一个简单的只有一张表的数据库。用这个表来执行一些示例操作。现在,请在浏览器中输入http://localhost/phpmyadmin/,并打开phpmyadmin。可以用PhpMyAdmin工具创建数据库和表。

  创建数据库和表:数据库名:androidhive,表:product

  CREATE DATABASE androidhive;
  CREATE TABLE products(
  pid int(11) primary key auto_increment,
  name varchar(100) not null,
  price decimal(10,2) not null,
  description text,
  created_at timestamp defaultnow(),
  updated_at timestamp
  );5. 用PHP连接MySQL数据库

  现在,真正的服务器端编程开始了。新建一个PHP类来连接MYSQL数据库。这个类的主要功能是打开数据库连接和在不需要时关闭数据库连接。

  新建两个文件db_config.php,db_connect.php

  db_config.php--------存储数据库连接变量
  db_connect.php-------连接数据库的类文件

  db_config.php

  <?php
  /*
  * All database connection variables
  */
  define('DB_USER', "root"); // db user
  define('DB_PASSWORD', ""); // db password (mention your db password here)
  define('DB_DATABASE', "androidhive"); // database name
  define('DB_SERVER', "localhost"); // db serverdb_connect.php

  <?php
  /**
  * A class file to connect to database
  */
  classDB_CONNECT {
  // constructor
  function__construct() {
  // connecting to database
  $this->connect();
  }
  // destructor
  function__destruct() {
  // closing db connection
  $this->close();
  }
  /**
  * Function to connect with database
  */
  functionconnect() {
  // import database connection variables
  require_once__DIR__ . '/db_config.php';
  // Connecting to mysql database
  $con= mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) ordie(mysql_error());
  // Selecing database
  $db= mysql_select_db(DB_DATABASE) ordie(mysql_error()) ordie(mysql_error());
  // returing connection cursor
  return$con;
  }
  /**
  * Function to close db connection
  */
  functionclose() {
  // closing db connection
  mysql_close();
  }
  }
  ?>怎么调用:想连接MySQl数据库或者执行某些操作时,可以这样使用db_connect.php

  $db= newDB_CONNECT(); // creating class object(will open database connection)
相似回答