怎么连接android和php mysql数据库

2024-11-18 10:40:32
推荐回答(3个)
回答1:

  我们先来看一个简单的Android app例子(这里是一个商品存货清单项目),在Android程序中,我们可以访问(call)PHP脚本来执行简单的CRUD操作(创建,读取,更新,删除)。为了使你对它的体系结构有一个大概的了解,这里先说一下它是怎么工作的。首先你的Android项目访问(call)PHP脚本来执行一条数据操作,我们称它为“创建”。然后PHP脚本连接MySQL数据库来执行这个操作。这样,数据从Android程序流向PHP脚本,最终存储在MySQL数据库中。

  好了,让我们来深入的看一下。

  请注意:这里提供的代码只是为了使你能简单的连接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://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

    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

    /*
  * 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 server
  db_connect.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)
  6. 使用PHP执行基本CRUD操作
  在这部分,我将讲述使用PHP对MySQL数据库执行基本CRUD(创建,读取,更新,删除)操作。

  如果你是PHP和MySQL新手,我建议你可以先学习 PHP 和 SQL 基础知识。

  6. a)在MYSQL中新建一行(创建一行新的产品)

  在你的PHP项目中新建一个php文件,命名为create_product.php,并输入以下代码。该文件主要实现在products表中插入一个新的产品。

  在下面的代码我使用POST来读取产品数据并把他们存储在products表中。

  最后我会输出一些JSON返回值,以便返回给客户端(Android项目)

回答2:

请注意:这里提供的代码只是为了使你能简单的连接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

    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

    /*
  * 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

    /**
  * 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)

回答3:

Android通过PHP连接MySQL:

insert.php

mysql_connect("127.0.0.1","root","123456");
mysql_query("SET NAMES utf8");
mysql_select_db("test");

$sql=mysql_query("insert into teacher (id,name) values('$_POST[id]','$_POST[name]')");
while($row=mysql_fetch_assoc($sql))
$output[]=$row;
print(json_encode($output));
mysql_close();
?>

//AndroidTestActivity.java
package com.knight.android.test;//根据实际的工程需要,修改包的名称

import java.io.InputStream;
import java.util.ArrayList;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class AndroidTestActivity extends Activity {
JSONArray jArray;
String result = null;
InputStream is = null;
StringBuilder sb=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b1 = (Button) findViewById(R.id.button1);
b1.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
EditText tv = (EditText) findViewById(R.id.editView);
ArrayList nameValuePairs = new ArrayList();
nameValuePairs.add(new BasicNameValuePair("id","3"));
nameValuePairs.add(new BasicNameValuePair("name","Guo"));
//http post
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://175.186.52.155/insert.php");
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
tv.setText("insert successfully");
}catch(Exception e){
Log.e("log_tag", "Error in http connection"+e.toString());
}
}
});
}
}