📜  Android-PHP MYSQL(1)

📅  最后修改于: 2023-12-03 14:39:10.825000             🧑  作者: Mango

Android-PHP MYSQL

简介

Android-PHP MYSQL是一种常见的解决方案,用于将Android应用程序与服务器端的PHP代码和MYSQL数据库集成在一起。结合使用这三种技术可以创建很多种基于网络的Android应用程序,因为它们允许我们处理数据库中的数据,同时展示这些数据到Android屏幕上。

技术细节
Android

Android是一个移动操作系统,被广泛应用于智能手机、平板电脑和其他移动设备。Android使用Java进行编程,可以创建强大的移动应用程序。

PHP

PHP是一种服务器端的脚本语言,一种开源的脚本语言。它可以运行在web服务器上,生成动态的web页面。PHP可执行查询和更新MYSQL数据库。

MYSQL

MYSQL是一个开源的关系型数据库管理系统,被广泛应用于互联网应用程序的数据存储。MYSQL使用SQL(结构化查询语言)来交互数据。

实现步骤
  1. 在PHP服务器上,创建数据库并使用PHPMyAdmin创建一个表。
  2. 创建几个PHP文件,将这些文件上传到您的PHP服务器。这些文件的任务是向MYSQL数据库中插入、更新或查询数据。
  3. 在您的Android项目中,创建一个用于访问PHP文件的类。这个类可以使用HttpURLConnection或HttpClient来访问这些PHP文件。
  4. 使用异步任务将HTTP请求发送到PHP文件,并在回调中处理响应数据。
  5. 将响应数据与您的Android应用程序视图集成。
代码片段

以下是一个简单的PHP文件,它将数据插入MYSQL数据库,并返回一个成功或失败的JSON响应。

<?php

header('Content-type: application/json');

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);

// 检查连接状态
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

// 定义插入数据的变量
$name = $_POST['name'];
$email = $_POST['email'];

// 在表中插入数据
$sql = "INSERT INTO users (name, email) VALUES ('$name', '$email')";

if ($conn->query($sql) === TRUE) {
  echo '{"success": true, "msg": "Data inserted successfully."}';
} else {
  echo '{"success": false, "msg": "Error: ' . $sql . '<br>' . $conn->error . '"}';
}

$conn->close();

?>

以下是一个用于访问PHP文件的Java类。

public class HttpHandler {

    private static final String TAG = HttpHandler.class.getSimpleName();

    public HttpHandler() {
    }

    public String makeServiceCall(String reqUrl) {
        String response = null;
        try {
            URL url = new URL(reqUrl);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");

            // 读取响应
            InputStream in = new BufferedInputStream(conn.getInputStream());
            response = convertStreamToString(in);
        } catch (MalformedURLException e) {
            Log.e(TAG, "MalformedURLException: " + e.getMessage());
        } catch (IOException e) {
            Log.e(TAG, "IOException: " + e.getMessage());
        } catch (Exception e) {
            Log.e(TAG, "Exception: " + e.getMessage());
        }
        return response;
    }

    // 将InputStream转换为String
    private String convertStreamToString(InputStream is) {
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        StringBuilder sb = new StringBuilder();

        String line;
        try {
            while ((line = reader.readLine()) != null) {
                sb.append(line).append('\n');
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                is.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return sb.toString();
    }
}
总结

Android-PHP MYSQL是一种基于网络的解决方案,允许我们从MYSQL数据库中查询和更新数据,并将数据展示到移动设备的屏幕上。学习这种技术可以创建很多种有用的Android应用程序。