我有一个Android应用程序,可通过PHP脚本从外部SQL数据库写入/读取。数据库和PHP脚本都托管在Amazon Web Services(AWS)上。该应用程序将HTTP请求发送到PHP脚本,然后PHP脚本与数据库进行通信。
是否有更简单的方法将应用程序与数据库连接?我觉得这种方法有点怪异。还是这是怎么做的?是否可以完全避免使用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);
答案 0 :(得分:3)
这是通过API做到这一点的正确方法。
Frontend Application (Android, iOS, browser) <-> API <-> Backend
您可以直接连接到数据库,但不能。为此,您必须在应用程序中输入用户名和密码。这样做,如何防止用户连接数据库并更改他们想要的所有内容?还有许多反对这种方法的观点。
寻找REST APIs
或GraphQL
。