javascript - 使用 POST 请求在 PHP 中查询 "SELECT * FROM .... WHERE ..."

标签 javascript php android mysql

我正在尝试从我的 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);
}

最佳答案

$query = "your query";
if ($data = $mysqli->query($query)) {
    $row = $data->fetch_array(MYSQLI_NUM);

    echo json_encode( $row );
    $data->free();
}
$mysqli->close();

关于javascript - 使用 POST 请求在 PHP 中查询 "SELECT * FROM .... WHERE ...",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48135373/

相关文章:

javascript - 当我使用不带 'var' 的全局范围变量时,它向我显示错误。为什么?

javascript - 登录表单在登录后不重定向

java - Android 在神秘的 d() 方法中崩溃

android - 无法让 SipDemo 注册 sip 语音通话

android - 如何在 android 中使用套接字从 REST Api 获取 JSON 响应以动态膨胀 recyclerview?

javascript - 异步加载js文件和其他依赖的js文件

javascript - Angular - 嵌套 $scope 会产生嵌套 $watchers?

php - MySQL 和 PHP 日期和时间

php - Laravel - 用不同的值更新多个记录

php - 如何使用 Cake PHP 创建子域?