Java 为什么我从数据库中获取的值不是公共的?
我能够通过Android中的php从mySQL数据库中接收特定值。 我可以用toast显示received值,但前提是我将toast放在try-and-catch方法中,如下所示:Java 为什么我从数据库中获取的值不是公共的?,java,php,android,mysql,database,Java,Php,Android,Mysql,Database,我能够通过Android中的php从mySQL数据库中接收特定值。 我可以用toast显示received值,但前提是我将toast放在try-and-catch方法中,如下所示: public void loadProducts() { StringRequest stringRequest = new StringRequest(Request.Method.GET, GLOBALBANNER_URL, new Response.Listener<St
public void loadProducts() {
StringRequest stringRequest = new StringRequest(Request.Method.GET, GLOBALBANNER_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONArray products = new JSONArray(response);
JSONObject productObject = products.getJSONObject(0);
id = productObject.getInt("ID");
imageURL = productObject.getString("Image");
playstorelink = productObject.getString("PlayStoreLink");
isDislaying = productObject.getInt("isDisplaying");
displayingTimes = productObject.getInt("DisplayingTimes");
Toast.makeText(MainActivity.this, "URL MainActivity: " + playstorelink , Toast.LENGTH_SHORT).show();
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this , error.getMessage(), Toast.LENGTH_SHORT).show();
}
});
Volley.newRequestQueue(MainActivity.this).add(stringRequest);
}
为什么我只能使用try-and-catch方法中的值?
我希望它是公开的
我将我的变量声明为公共:
public int id;
public String playstorelink;
public String imageURL;
public int isDislaying;
public int displayingTimes;
我对Android相当陌生,不知道为什么它不起作用。
我只需要处理数据库中的这5个值
以下是我的PHP脚本:
<?php
$servername = "localhost";
$username = "censored";
$password = "censored";
$dbName = "censored";
$conn = new mysqli($servername, $username, $password, $dbName);
if(!$conn){
die("Connection Failed. ". mysqli_connect_error());
}
$response = array();
$sql_query = "SELECT ID, Image, PlayStoreLink, isDisplaying, DisplayingTimes FROM globalbanner";
$result = mysqli_query($conn ,$sql_query);
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_assoc($result)){
array_push($response, $row);
}
}else{
$response['success'] = 0;
$response['message'] = 'No data';
}
echo json_encode($response);
mysqli_close($conn);
?>
谢谢。
loadProducts
在发送请求时完成,而不是在收到响应时完成。当响应可用时,将执行响应侦听器。此时,您的onCreate
已完成。@f1sh好的,谢谢,那么如何处理这些值呢?playstorelink etcloadProducts
在发送请求时完成,而不是在收到响应时完成。当响应可用时,将执行响应侦听器。此时,您的onCreate
已完成。@f1sh好的,谢谢,那么如何处理这些值呢?playstorelink等
<?php
$servername = "localhost";
$username = "censored";
$password = "censored";
$dbName = "censored";
$conn = new mysqli($servername, $username, $password, $dbName);
if(!$conn){
die("Connection Failed. ". mysqli_connect_error());
}
$response = array();
$sql_query = "SELECT ID, Image, PlayStoreLink, isDisplaying, DisplayingTimes FROM globalbanner";
$result = mysqli_query($conn ,$sql_query);
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_assoc($result)){
array_push($response, $row);
}
}else{
$response['success'] = 0;
$response['message'] = 'No data';
}
echo json_encode($response);
mysqli_close($conn);
?>