dounong5373 2016-09-17 13:52
浏览 24
已采纳

从应用程序更新不会执行查询,但从url执行将执行查询

the query from the application is not being updated , but I can do it manually

this is the url , note if you exucte it , the query will be run

http://justedhak.com/old-files/singleactivity.php?id=1&likes=14

this is the php, i know php needs improvement

$id= intval($_GET['id']);
$likes= intval($_GET['likes']);

$con = mysqli_connect($host,$uname,$pwd,$db) or die(mysqli_error());
echo $id;

    $sql1="UPDATE OBJECTS SET LIKES=$likes WHERE ID=$id";
   $result = mysqli_query($con,$sql1);

this is the code

class SendPostReqAsyncTask extends AsyncTask<String, Void, String> {
        @Override
        protected  void onPreExecute()
        {
            Log.e("GetText","called");

        }
        @Override
        protected String doInBackground(String... params) {

            String json = "";

            try{
                RequestBody formBody = new FormEncodingBuilder()
                        .add("id", "1")
                        .add("likes", "10")
                        .build();
                Request request = new Request.Builder()
                        .url("http://justedhak.com/old-files/singleactivity.php")
                        .post(formBody)
                        .build();

                Response response = client.newCall(request).execute();
                if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
                //insert username, password and login true after successful login.


                //redirect to main activity


            } catch (IOException e){
                Log.e("MYAPP", "unexpected JSON exception", e);
            }

            return "success";
        }

I am not getting errors , and the asyctask looks good

  • 写回答

1条回答 默认 最新

  • duandaotui5633 2016-09-17 14:25
    关注

    Your API support only GET method. You don't need to create a RequestBody for that.

    Try this,

    @Override
    protected String doInBackground(String... params) {
        try {
            String id = "1";
            String likes = "14";
            String url = "http://justedhak.com/old-files/singleactivity.php?id=" + id + "&likes=" + likes;
            Request request = new Request.Builder()
                    .url(url)
                    .build();
    
            Response response = client.newCall(request).execute();
    
            if (!response.isSuccessful()){
                throw new IOException("Unexpected code " + response);
            }
    
            Log.e("MYAPP", response.body().string());
    
        } catch (IOException e){
            Log.e("MYAPP", "unexpected JSON exception", e);
        }
    
        return "success";
    }
    

    Try this code in PHP,

    <?php
    $id = intval($_GET['id']);
    $likes = intval($_GET['likes']);
    
    // Create connection
    $conn = new mysqli($host, $uname, $pwd, $db);
    
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 
    
    $sql = "UPDATE OBJECTS SET LIKES=$likes WHERE ID=$id";
    
    if ($conn->query($sql) === TRUE) {
        echo "Record updated successfully";
    } else {
        echo "Error updating record: " . $conn->error;
    }
    
    $conn->close();
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?