사용자가 안드로이드에서 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;
}
}
}
그렇지 않으면 $ name, $ email 및 $ mobile의 값을 인쇄하고 설정되어 있는지 확인하십시오. – ksome
여전히 동일한 문제 –
데이터베이스에 입력하기 전에 $ name, $ email 및 $ mobile의 값은 무엇입니까? 그리고 $ _POST 배열의 가치는 무엇입니까? – ksome