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

时间:2016-09-17 13:52:40

标签: php android

来自应用程序的查询未更新,但我可以手动执行

这是网址,请注意,如果您执行该网址,则会运行查询

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

这是php,我知道php需要改进

$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);

这是代码

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

我没有收到错误,asyctask看起来不错

1 个答案:

答案 0 :(得分:1)

您的API仅支持GET方法。您不需要为此创建RequestBody

试试这个,

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

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();
?>