java - 无法用 PHP 更新 MySQL

标签 java php android mysql

我正在制作一个使用 MySQL 和 PHP 进行注册的 Android 应用程序,但我的 MySQL 数据库没有更新。我正在使用 php 方法,但没有成功更新表格。这是 java 代码的重要 fragment :

public void updateGroupName() {
        submitButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                EditText groupName = (EditText) dialog.findViewById(R.id.group);
                final String name = groupName.getText().toString();
                System.out.println("Name of group is: " + name);
                updateUser(name);
                       System.out.println("Trying to update user group");
                        if (!name.isEmpty()) {

                            //add to sqlite database
                            updateUser(name);
                        } else {
                            Toast.makeText(getApplicationContext(),
                                    "Please enter your details!", Toast.LENGTH_LONG)
                                    .show();
                        }
                        String tag_string_req = "req_update";

                        //showDialog();

                        StringRequest strReq = new StringRequest(Request.Method.POST,
                                AppConfig.URL_REGISTER, new Response.Listener<String>() {

                            @Override
                            public void onResponse(String response) {
                                Log.d(TAG, "Update Response: " + response.toString());
                                //hideDialog();

                                try {
                                    JSONObject jObj = new JSONObject(response);
                                    boolean error = jObj.getBoolean("error");
                                    if (!error) {
                                        System.out.println("User group successfully updated in mysql");
                                        // User successfully stored in MySQL
                                    } else {
                                        System.out.println("The use group failed to update");
                                        // Error occurred in registration. Get the error
                                        // message
                                        String errorMsg = jObj.getString("error_msg");
                                        Toast.makeText(getApplicationContext(),
                                                errorMsg, Toast.LENGTH_LONG).show();
                                    }
                                } catch (JSONException e) {
                                    e.printStackTrace();
                                }

                            }
                        }, new Response.ErrorListener() {

                            @Override
                            public void onErrorResponse(VolleyError error) {
                                Log.e(TAG, "Update Error: " + error.getMessage());
                                Toast.makeText(getApplicationContext(),
                                        error.getMessage(), Toast.LENGTH_LONG).show();
//                hideDialog();
                            }
                        }) {
                            String email = db.getUserDetails().get("email");
                            @Override
                            protected Map<String, String> getParams() {
                                System.out.println("trying to return params");
                                // Posting params to register url
                                Map<String, String> params = new HashMap<>();
                                params.put("tag", "update");
                                params.put("user_group", name);
                                params.put("email", email);
                                return params;
                            }
                        };
                        System.out.println("updating group to mysql database");
                        // Adding request to request queue
                        AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
//                System.out.println("here1");
//                System.out.println("user group: " + db.getUserDetails().get("user_group"));
                dialog.dismiss();
                    }
        });
        //System.out.println("here2");
    }

以下是我的 PHP 代码的重要部分:

else if ($tag == "update") {
        $user_group = $_POST['user_group'];
        $uid = $_POST['email'];
        //update user
        $user = $db->updateUser($user_group, $email);
        if ($user) {
            $response["error"] = FALSE;
            $response["uid"] = $user["unique_id"];
            $response["user"]["name"] = $user["name"];
            $response["user"]["email"] = $user["email"];
            $response["user"]["user_group"] = ["user"]["user_group"];
            $response["user"]["created_at"] = $user["created_at"];
            $response["user"]["updated_at"] = $user["updated_at"];
            echo "The update User function was called and a user was returned";
            echo json_encode($response);
        } else {
            // user failed to store
            $response["error"] = TRUE;
            $response["error_msg"] = "Error occured in Updating user group";
            echo json_encode($response);
        }

public function updateUser($user_group, $email) {
        $result = mysql_query("UPDATE users SET user_group = '$user_group' WHERE email = '$email'");
        if ($result) {
            // get user details 
            $uid = mysql_insert_id(); // last inserted id
            $result = mysql_query("SELECT * FROM users WHERE uid = $uid");
            // return user details
            return mysql_fetch_array($result);
        } else {
            return false;
        }
    }

最佳答案

您正在将 $email 传递给您的方法 updateUser,但电子邮件地址存储在 $uid 中。

请更改

$user = $db->updateUser($user_group, $email);

$user = $db->updateUser($user_group, $uid);

关于java - 无法用 PHP 更新 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31933314/

相关文章:

javascript - AJAX 后 - {"readyState":0 ,"responseText" :"" ,"status":0 ,"statusText" :"error"}

android - 取消后再次运行异步任务,有什么办法吗?

android - 如何在垂直方向的android单选按钮之间提供间距

java - 对于某些在线编译器,扫描器 next() 会抛出 NoSuchElementException

java - 如何在 Java 中将字符串与多个正则表达式模式进行匹配

java - if 语句中可以有两个条件吗

javascript - 如何使用编辑器编辑保存的图像

php - 由于没有可用的匹配包,无法将 PHP 升级到 7.3

android - 如何在按钮的 onClick() 中打开 Activity ?

java - Spring Security、无状态 REST 服务和 CSRF