【发布时间】:2018-06-16 13:13:30
【问题描述】:
我正在尝试从我的 android 应用程序发送用户的 id,然后使用 $_POST 方法请求在服务器上的 SQLite 数据库中获取他们的信息。按照一些教程,我发现 mysqli_query() 将为成功的 SELECT 查询返回一个对象。因此,我获取用户信息以在 android studio 中使用 Volley 库读取 JsonObject。但是,我收到一个错误:**java.lang.String 类型的值无法转换为 JSONObject **。我是 PHP 和 Android 的新手(刚从 1 个月前开始学习),请帮助我!提前致谢。
这是php中的代码:
<?php
$connect = mysqli_connect("localhost","root","","bkguardian");
mysqli_query($connect,"SET NAME 'uft8'");
$id = $_POST['id'];
$query = "SELECT * FROM user_lock_information WHERE id = '$id' LIMIT 1";
$data = mysqli_query($connect,$query);
$row = mysqli_fetch_assoc($data);
echo json_encode($row);
?>
adroid studio中获取用户信息的功能如下:
private void getUserLockInformation(String url, final String id) {
RequestQueue requestQueue = Volley.newRequestQueue(LogInActivity.this);
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, url, null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Integer numColumn = response.length();
lockData = new Integer[numColumn -1];
String nameHandle;
for (int i = 0; i<=numColumn-1; i++){
nameHandle ="lock".concat(String.valueOf(i+1));
try {
lockData[i]= response.getInt(nameHandle);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// GET NOTIFY FOR SYSTEM ERROR, NEED TO ADD MORE ACTION.
Toast.makeText(LogInActivity.this, "Error system, Please report this to admin!",Toast.LENGTH_LONG).show();
Log.d("AAA","error \n" +error.toString());
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> param = new HashMap<>();
param.put("id",id);
return param;
}
};
requestQueue.add(jsonObjectRequest);
}
【问题讨论】:
-
名字是名字的同义词吗?
-
嗯,我不明白你的问题?我的代码中没有“名称”或“名称”
-
嗯,那是你的代码,“名字”这个词肯定出现在里面。
标签: javascript php android mysql