无法与PHP更新的MySQL [英] Unable to update MySQL with PHP

查看:158
本文介绍了无法与PHP更新的MySQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用MySQL和PHP登记做一个Android应用程序,和我的MySQL数据库没有更新。我正在给PHP的方法,但我没有成功更新表。这里是java的code的重要片段:

 公共无效updateGroupName(){
        submitButton.setOnClickListener(新View.OnClickListener(){
            @覆盖
            公共无效的onClick(视图v){
                的EditText组名=(EditText上)dialog.findViewById(R.id.group);
                。最终的字符串名称= groupName.getText()的toString();
                的System.out.println(组的名称是:+姓名);
                UpdateUser两个(名);
                       的System.out.println(尝试更新用户组);
                        如果(!name.isEmpty()){                            //添加到SQLite数据库
                            UpdateUser两个(名);
                        }其他{
                            Toast.makeText(getApplicationContext(),
                                    请输入您的详细信息!,Toast.LENGTH_LONG)
                                    。显示();
                        }
                        字符串tag_string_req =req_update;                        //的ShowDialog();                        StringRequest strReq =新StringRequest(Request.Method.POST,
                                AppConfig.URL_REGISTER,新Response.Listener<串GT;(){                            @覆盖
                            公共无效onResponse(字符串响应){
                                Log.d(TAG,更新回应:+ response.toString());
                                // hideDialog();                                尝试{
                                    JSONObject的jObj =新的JSONObject(响应);
                                    布尔误差= jObj.getBoolean(错误);
                                    如果(!错误){
                                        的System.out.println(用户组更新成功在mysql中);
                                        //用户成功存储在MySQL中
                                    }其他{
                                        的System.out.println(利用小组未能更新);
                                        //发生了注册错误。得到的错误
                                        // 信息
                                        串ERRORMSG = jObj.getString(ERROR_MSG);
                                        Toast.makeText(getApplicationContext(),
                                                ERRORMSG,Toast.LENGTH_LONG).show();
                                    }
                                }赶上(JSONException E){
                                    e.printStackTrace();
                                }                            }
                        },新Response.ErrorListener(){                            @覆盖
                            公共无效onErrorResponse(VolleyError错误){
                                Log.e(TAG,更新错误:+ error.getMessage());
                                Toast.makeText(getApplicationContext(),
                                        error.getMessage(),Toast.LENGTH_LONG).show();
// hideDialog();
                            }
                        }){
                            。字符串email = db.getUserDetails()获得(电子邮件);
                            @覆盖
                            保护地图<字符串,字符串> getParams()方法{
                                的System.out.println(试图返回PARAMS);
                                //发布PARAMS注册网址
                                地图<字符串,字符串> PARAMS =新的HashMap<>();
                                params.put(标签,更新);
                                params.put(USER_GROUP,名);
                                params.put(邮件,邮件);
                                返回PARAMS;
                            }
                        };
                        的System.out.println(组更新MySQL数据库);
                        //添加请求,请求队列
                        。AppController.getInstance()addToRequestQueue(strReq,tag_string_req);
//的System.out.println(here1);
//的System.out.println(用户组:+ db.getUserDetails()获得(USER_GROUP));
                dialog.dismiss();
                    }
        });
        //System.out.println(\"here2);
    }

下面是我的PHP code的重要部分:

 否则如果($标记==更新){
        $ USER_GROUP = $ _ POST ['USER_GROUP'];
        $ UID = $ _ POST [电子邮件];
        //更新用户
        $ USER = $ DB-GT&; UpdateUser两个($ USER_GROUP,$电子邮件);
        如果($用户){
            $响应[错误] = FALSE;
            $响应[UID] = $用户[UNIQUE_ID];
            $响应[用户] [名称] = $用户[名];
            $响应[用户] [电子邮件] = $用户[电子邮件];
            $响应[用户] [USER_GROUP] = [用户] [USER_GROUP];
            $响应[用户] [created_at] = $用户[created_at];
            $响应[用户] [的updated_at] = $用户[的updated_at];
            回声更新用户函数被调用和用户返回
            回声json_en code($响应);
        }其他{
            //用户未能保存
            $响应[错误] = TRUE;
            $响应[ERROR_MSG] =​​错误更新用户组发生;
            回声json_en code($响应);
        }公共职能UpdateUser两个($ USER_GROUP,$电子邮件){
        $结果= mysql_query(更新设置用户USER_GROUP ='$ USER_GROUP'WHERE电子邮件= $电子邮件');
        如果($结果){
            //获取用户详细信息
            $ UID = mysql_insert_id(); //最后插入的ID
            $结果= mysql_query(SELECT * FROM用户其中uid = $ UID);
            //返回用户详细信息
            返回mysql_fetch_array($结果);
        }其他{
            返回false;
        }
    }


解决方案

您逝去的 $电子邮件来你的方法 UpdateUser两个但电子邮件地址存储在 $ UID

请更改

  $ USER = $ DB-GT&; UpdateUser两个($ USER_GROUP,$电子邮件);

  $ USER = $ DB-GT&; UpdateUser两个($ USER_GROUP,$ UID);

I'm making an android app using MySQL and PHP for registration, and my MySQL database is not updating. I am getting to the php methods, but am not successfully updating the table. Here is the important snippet of java code:

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");
    }

Here are the important portions of my PHP code:

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;
        }
    }

解决方案

You are passing $email to your method updateUser but the email address is stored in $uid.

Please change

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

to

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

这篇关于无法与PHP更新的MySQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆