本文介绍了无法与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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!