如何使用改造2更新mysql数据库的行?

极客生活

我试图update使用MySQL数据库的特定行retrofit2android studio按照本教程:https://www.youtube.com/watch?v=xKEFGsMUG8s我使用createread方法做到了这一点,但确实可行,但update我遇到了更多困难。我有一个API interface和php脚本将请求发送到我的数据库。

我的问题是:当我updateTest通过单击按钮使用该方法时,响应告诉我请求已成功,但是我的数据库中没有更新的行。

这是API接口:

public interface JsonPlaceHolderApiTest {

@PUT("update.php/{id}")
Call<Test> putTest(@Path("id") int id, @Body Test test);
}

这是更新方法:

private void updateTest(){

    Test test = new Test ("updated_name", "updated_age");

    Call<Test> call = jsonPlaceHolderApiTest.putTest(3, test);

    call.enqueue(new Callback<Test>() {
        @Override
        public void onResponse(Call<Test> call, Response<Test> response) {
            Toast.makeText(ActivityTest.this, response.toString(), Toast.LENGTH_LONG).show();

        }

        @Override
        public void onFailure(Call<Test> call, Throwable t) {
            Toast.makeText(ActivityTest.this, t.toString(), Toast.LENGTH_LONG).show();
        }
    });
}

这是PHP脚本:

<?php

mysqli_set_charset($db, 'utf8');

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $id = $_POST['id'];
    $name = $_POST['name'];
    $age = $_POST['age'];

    require_once 'db_config.php';

    $sql = "UPDATE `test` SET name= '$name', age = '$age' WHERE id = '$id'";
    $check = mysqli_fetch_array(mysqli_query($db, $sql));
    if (mysqli_query($check)) {
        $response["success"] = true;
        $response["message"] = "successfully";
    } else {
        $response["success"] = false;
        $response["message"] = "Failure!";
    }
} else {
    $response["value"] = false;
    $response["message"] = "Error!";
}

echo json_encode($response);
极客生活

我通过更改php脚本,API接口和更新方法找到了解决方案。

<?php

include("db_config.php");


function updateData($id,$name,$age){
global $db;
$result=mysqli_query($db , "UPDATE `test` SET `name`='$name',
`age`='$age' WHERE id = '$id'")or die(mysqli_error($db));
return $result;
}

$id = $_REQUEST["id"];
$name = $_REQUEST['name'];
$age = $_REQUEST['age'];

if (isset($id) && isset($name) && isset($age)){
    $result=updateData($id,$name,$age);

if ($result) {
    $response["success"] = 1;
    $response["message"] = "Successfully updated"; 
    echo json_encode($response);
} 
else {
    $response["success"] = 0;
    $response["message"] = "Oops! An error occurred."; 
    echo json_encode($response);
}

} 
else {
  $response["success"] = 0;
  $response["message"] = "Required field(s) is missing";  
  echo json_encode($response);
}
?>

在API界面中,我已替换@PUT@POST

@FormUrlEncoded
@POST("update.php")
Call<Test> updateTest2(
        @Field("id") int id,
        @Field("name")String name,
        @Field("age")String age);

这是新的更新方法:

 private void updateTest2(int id, String name, String age) {


    JsonPlaceHolderApiTest jsonPlaceHolderApiTest =ApiClient.getApiClient().create(JsonPlaceHolderApiTest.class);
    Call<Test> call = jsonPlaceHolderApiTest.updateTest2(id, name, age);

    call.enqueue(new Callback<Test>() {
        @Override
        public void onResponse(Call<Test> call, Response<Test> response) {

            Toast.makeText(ActivityTest.this, response.toString(), Toast.LENGTH_LONG).show();
        }

        @Override
        public void onFailure(Call<Test> call, Throwable t) {
            Toast.makeText(ActivityTest.this, t.toString(), Toast.LENGTH_LONG).show();
        }
    });

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用MySQL数据库正确更新JTable数据?

如何使用php,mysql更新数据库

如何使用变量更新mysql数据库?

如何使用foreach循环更新数据库中的行?

如何使用python从数据库MySQL获取行?

使用Codeigniter更新mysql数据库

使用 COALESCE 更新 Mysql 数据库

如何使用Pandastable更新数据库

如何使用mySQL使用当前数据库表中的信息更新其他数据库表?

在数据库更新后,如何使Rails使用Ajax更新HTML表行?

更新数据库行

使用MySQL数据库更改数据时如何发送更新?

如何更新mySQL数据库中的数据?

如何在改造 2 上发布整个数据库

使用 executemany 从 Pandas 数据帧更新 mysql 数据库

在MySQL数据库中使用JDBC更新数据

使用mysql NOW()函数更新数据库行而不在PHP查询中工作

无法使用Java更新MySQL数据库中的行,没有错误消息

无法在mysql数据库中更新行

如何使用Struts2和Hibernate更新数据库中的数据

mysql 如何允许用户使用 php 更新一次数据库中的列

如何使用awk / sed / linux-shell脚本从Linux更新MySQL数据库?

如何使用Java向MySQL数据库写入(更新)日期?

如何使用ajax从mysql数据库中的计数更新标签

如何使用整个html表(PHP,MySQL)更新数据库

如何使用同一数据库表的查询结果更新MYSQL表中的字段?

我如何使用准备好的语句更新mysql数据库中的值

如何使用AngularJS更新/编辑数据库中的数据

如何使用linq更新数据库中的数据