【问题标题】:Insert values in mysql from android从android在mysql中插入值
【发布时间】:2017-03-06 15:36:56
【问题描述】:

我正在开发一个 android 应用程序,用户将在其中从 android 向 mysql 中插入值。一切都好。但是当用户插入值时,表中插入了空白值。这是我的php代码:

<?php
 require "init.php";
 $host = "localhost";
 $user = "githucco_furqan";
 $password = "githuc.com123";
 $db = "githucco_app";

 $sql_query= "insert into sample values('$name','$email','$mobile');";
     if(mysqli_query($con,$sql_query))
       {
         echo"<h3>Data insertion successfully</h3>";
       }
    else
       {
        echo"<h3>Data insertion error...</h3>".mysqli_error($con);
       }
  ?>

我的java代码是:

package com.example.muhammadfurqan.fanuc;

import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;

public class Add_Info extends AppCompatActivity {
EditText name,email,number;
Button add_button;
String p_name,mail,cell_number;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add__info);
    name = (EditText)findViewById(R.id.name);
    email = (EditText)findViewById(R.id.email);
    number = (EditText)findViewById(R.id.number);
    add_button = (Button)findViewById(R.id.add_btn);

}
public void saveinfo(View view){
    p_name = name.getText().toString();
    mail = email.getText().toString();
    cell_number = number.getText().toString();
    BackgroundTask backgroundTask = new BackgroundTask();
    backgroundTask.execute(p_name,mail,cell_number);
}
class BackgroundTask extends AsyncTask<String, Void, String> {

    String add_info_url;
    @Override
    protected void onPreExecute() {
        add_info_url = "http://app.githuc.com/android_database_connection/add_info.php";
    }

    @Override
    protected void onPostExecute(String result) {
        Toast.makeText(getApplicationContext(),result,Toast.LENGTH_LONG).show();

    }

    @Override
    protected void onProgressUpdate(Void... values) {
        super.onProgressUpdate(values);
    }

    @Override
    protected String doInBackground(String... arg) {
        String name, email, mobile;
        name = arg[0];
        email = arg[1];
        mobile = arg[2];
        try {
            URL url = new URL(add_info_url);
            HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
            httpURLConnection.setRequestMethod("POST");
            httpURLConnection.setDoOutput(true);
            OutputStream outputStream = httpURLConnection.getOutputStream();
            BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream,"LATIN"),8);
            String data_String = URLEncoder.encode("name","UTF-8")+"="+URLEncoder.encode(name,"UTF-8")+"&"+
                    URLEncoder.encode("email","UTF-8")+"="+URLEncoder.encode(email,"UTF-8")+"&"+
                    URLEncoder.encode("mobile","UTF-8")+"="+URLEncoder.encode(mobile,"UTF-8");
            bufferedWriter.write(data_String);
            bufferedWriter.flush();
            bufferedWriter.close();
            outputStream.close();
            InputStream inputStream = httpURLConnection.getInputStream();
            inputStream.close();
            httpURLConnection.disconnect();
            Log.d("name = ",name);
            Log.d("email = ",email);
            return "Data has been inserted successfuly";
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}

}

【问题讨论】:

    标签: android mysql phpmyadmin


    【解决方案1】:

    您必须从 php.ini 中的 $POST-Array 中获取 $name、$email 和 $mobile 的值。这应该适用于

    $name = $_POST["name"];
    $email = $_POST["email"];
    $mobile =  $_POST["name"];
    

    【讨论】:

    • 或者您能否打印 $name、$email 和 $mobile 的值并查看它们是否已设置?
    • $name、$email 和 $mobile 在输入数据库之前的值是多少? $_POST 数组的值是多少?
    • $name,$email,$mobile 的值为空
    • 和$_POST-array的值?
    • 感谢您的回复
    【解决方案2】:

    问题是因为您没有获得每个帖子参数的值。在执行查询之前,您需要从 android 接收 post 参数。您可以在article 中查看在 android 上发布的示例并在 WEB API 上接收发布参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-05
      • 1970-01-01
      • 2014-07-18
      • 1970-01-01
      • 1970-01-01
      • 2015-05-28
      相关资源
      最近更新 更多