나는 안드로이드 양식을 통해 데이터를 MySQL 데이터베이스에 게시하려고합니다. 나는 서버에 호스팅 된 PHP 스크립트에 데이터를 게시하고 있습니다. MYSQL에서 null 값을 얻고 있습니다. 웹 서비스 호출지고 있지만 아래에있는 내 안드로이드 코드 코드가 빈 데이터를 받고있다 :MySQL에 안드로이드 게시 데이터
package com.register;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import android.os.Bundle;
import android.os.StrictMode;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.app.Activity;
public class Register extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
EditText email_id = (EditText) findViewById(R.id.email_id) ;
EditText name = (EditText) findViewById(R.id.name);
EditText password = (EditText) findViewById(R.id.password);
Button button = (Button) findViewById(R.id.button1) ;
final String email = email_id.getText().toString();
final String fullname = name.getText().toString();
final String mpassword = password.getText().toString();
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//postData();
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://xyz/register.php");
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("email", email));
nameValuePairs.add(new BasicNameValuePair("name", fullname));
nameValuePairs.add(new BasicNameValuePair("password", mpassword));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
});
}
아래는 내 PHP 코드 :
mysql_connect("server","user","password");
mysql_select_db("testms");
$email = $_POST['email'];
$name = $_POST['name'] ;
$password = $_POST['password'] ;
$query_add="INSERT INTO users (`email` ,`name` ,`password`)
VALUES ('".$email."','".$name."', '".$password."')";
$query_exec=mysql_query($query_add) or die(mysql_error());
mysql_close();
}
어디에서 오류가 발생합니까? 앱에서 데이터를 전송하고 있습니까? PHP가 정상적으로 처리하고 제대로 처리하고 있습니까? 어떤 필드가 NULL로 전달됩니까? 데이터베이스에서 생성 된 SQL을 PHP에서 직접 실행 했습니까? – andrewsi
많은 코드를 게시하고 SO 커뮤니티에서 사용자를 위해 디버깅 할 것으로 예상되는 경우 여기에서 눈살을 찌푸리게됩니다. 너 뭐 해봤 니? 서버에 POST 콜렉션을 버린 적이 있습니까? 상수 삽입을 시도 했습니까? 또한 코드는 SQL 삽입 및 마법 인용 버그에 취약합니다. –
및 PHP 인터페이스에 어떤 점이 있습니까? 'var_deubug'와 함께 $ _REQUEST와 $ _POST를 디버그 해보십시오. –