2016-10-24 3 views
0

사용자가 안드로이드에서 mysql에 값을 삽입하는 안드로이드 앱을 개발 중입니다. 모든 것은 괜찮습니다. 그러나 사용자가 값을 삽입 할 때 빈 값이 테이블에 삽입됩니다.android에서 mysql에 값을 삽입하십시오.

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

내 자바 코드입니다 :

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

}

답변

0

당신은 $의 POST에서 $ 이름, $ 이메일 및 $ 모바일에 대한 값을 얻을 필요가 여기 내 PHP 코드입니다 -Array in PHP. 이 작업을 수행해야합니다

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

그렇지 않으면 $ name, $ email 및 $ mobile의 값을 인쇄하고 설정되어 있는지 확인하십시오. – ksome

+0

여전히 동일한 문제 –

+0

데이터베이스에 입력하기 전에 $ name, $ email 및 $ mobile의 값은 무엇입니까? 그리고 $ _POST 배열의 가치는 무엇입니까? – ksome

0

각 게시물에 대한 값을 얻을 수 없기 때문에 문제가 발생합니다. 검색어를 실행하기 전에 Android에서 게시물 매개 변수를 받아야합니다. 당신은 안드로이드에 게시 할 예제를 볼 수 있습니다 &이 article에서 웹 API에 게시 params를 받으십시오.

관련 문제