首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我想知道为什么不向MySQL发送数据?

我想知道为什么不向MySQL发送数据?
EN

Stack Overflow用户
提问于 2018-07-13 15:02:47
回答 1查看 58关注 0票数 0

我想发送数据到database.My PHP文件是OK的,因为我已经测试过,邮递员和它发送数据到database.But,当我使用安卓应用程序时,它不应该发送数据到database.Here是我的java方法发送data.Reply我请解决方案。

代码语言:javascript
复制
 public void insertData(String name,String category,int quantity){
        String url = "http://192.168.172.2/foods/insert.php";
    try {
        String data = URLEncoder.encode("name", "UTF-8")
                + "=" + URLEncoder.encode(name, "UTF-8");

        data += "&" + URLEncoder.encode("category", "UTF-8") + "="
                + URLEncoder.encode(category, "UTF-8");

        data += "&" + URLEncoder.encode("quantity", "UTF-8")
                + "=" + URLEncoder.encode(String.valueOf(quantity), "UTF-8");


        URL url1 = new URL(url);
        HttpURLConnection connection = (HttpURLConnection) url1.openConnection();
        connection.setRequestMethod("POST");
        connection.setDoOutput(true);
        OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
        writer.write(data);
        writer.flush();

        Log.d("datainsert","success"+data);

    } catch (MalformedURLException e) {
        Log.d("datainsert","Error"+e.getMessage());

    } catch (IOException e) {
        Log.d("datainsert","Error"+e.getMessage());
   }

<?PHP
require "config.php";

global $connect;

if (isset($_POST['name']) and isset($_POST['category']) and isset($_POST['quantity'])) {
$name = $_POST['name'];
$category = $_POST['category'];
$quantity = $_POST['quantity'];
$intq = (int)$quantity;


if ($_SERVER['REQUEST_METHOD']== "POST") {

$query = "INSERT INTO food_details(food_name,category,quantity) VALUES('$name','$category',$intq);";

  if($q = mysqli_query($connect,$query)){
    echo "successfully inserted";
  }else{
  //echo  mysqli_error(mysqli_query($connect,$query));
    echo "not success";
    echo "Error: " . $query . "<br>" . $connect->error;
  }
}
}

mysqli_close($connect);
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-14 09:58:30

使用用于创建查询String.As的POST方法Uri.Builder类将数据发送到服务器

代码语言:javascript
复制
Uri.Builder builder = new Uri.Builder()
        .appendQueryParameter("firstParam", paramValue1)
        .appendQueryParameter("secondParam", paramValue2)
String query = builder.build().getEncodedQuery();

对于您的特定问题,您的post方法如下所示

代码语言:javascript
复制
try {
        URL url = new URL("http://192.168.172.2/foods/insert.php");
        HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
        conn.setReadTimeout(10000);     //change according to need 
        conn.setConnectTimeout(15000);  //change according to need 
        conn.setRequestMethod("POST");
        conn.setDoInput(true);
        conn.setDoOutput(true);

        Uri.Builder builder = new Uri.Builder()
                .appendQueryParameter("name", name)
                .appendQueryParameter("category", category)
                .appendQueryParameter("quantity", quantity);
        String query = builder.build().getEncodedQuery();

        OutputStream os = conn.getOutputStream();
        BufferedWriter writer = new BufferedWriter(
                new OutputStreamWriter(os, "UTF-8"));
        writer.write(query);
        writer.flush();
        writer.close();
        os.close();

        conn.connect();

        //get response from server
        String response = conn.getResponseMessage();
        Log.d("URl->", response);

    } catch (IOException e) {
        e.printStackTrace();
    }

我希望它能为你工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51319421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档