【发布时间】:2019-02-15 11:07:54
【问题描述】:
我有一个 Android 应用程序,它通过 PHP 脚本从外部 SQL 数据库写入/读取。数据库和 PHP 脚本都托管在 Amazon Web Services (AWS) 上。应用程序向 PHP 脚本发送 HTTP 请求,PHP 脚本与数据库通信。
有没有更简单的方法可以将应用程序与数据库连接起来?我觉得这种方法有点hacky。或者这是如何完成的?是否可以完全避免PHP脚本,只在应用程序中通过Java与数据库通信?
以下是获取数据库中所有内容的代码。
php 脚本:
$servername = "";
$username = "";
$password = "";
$conn = mysqli_connect($servername, $username, $password);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT * FROM table";
$result = $conn->query($sql);
if($result->num_rows > 0){
while($row = $result->fetch_assoc()){
echo "rowname1: " . $row["rowname1"]. " rowname2: " . $row["rowname2"] . "\n";
}
} else {
echo "0 results";
}
$conn->close();
Java 代码:
requestQueue = Volley.newRequestQueue(this);
String url = "";
StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
textDatabase.setText(response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
textDatabase.setText(error.toString());
}
});
requestQueue.add(stringRequest);
【问题讨论】:
-
一般来说,通过 API(你称之为 php 脚本)与 DB 通信是一种很好的方法,比直接从 Android App 连接到 DB 要好得多。您的 API 有点不寻常。人们通常使用
JSON等数据格式进行通信 API Android