Fügen Sie Daten zu mysql mit Android Studio
Will ich Daten von einem Benutzer und legen Sie es auf MySql
Datenbank,,,das ist mein code,,,was ist mein problem?
meine app ausgeführt wurde....aber nachdem ich den Eintrag meine Daten und klicken Sie auf die Schaltfläche "einfügen", wird nichts eingefügt, um meine db....bitte helfen Sie mir
init.php
<?php
$db_name="project";
$mysql_user="root";
$server_name="localhost";
$connection=mysqli_connect($server_name,$mysql_user,"",$db_name);
if(!$connection)
{
echo("Connection not successful");
}
else
echo("Connection Successful");
?>
register.php
<?php
require "init.php";
$u_name=$_POST["name"];
$u_password=$_POST["password"];
$u_contact=$_POST["contact"];
$u_country=$_POST["country"];
$sql_query="insert into users (name,password,contact,country) values('$u_name','$u_password','$u_contact','$u_country');";
if(mysqli_query($connection,$sql_query))
{
// echo("data inserted");
}
else
{
// echo("error");
}
?>
MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void goToRegister(View view)
{
Intent intent=new Intent(this,Register.class);
startActivity(intent);
}
}
BackgroundTask.java
public class BackgroundTask extends AsyncTask<String,Void,String> {
Context ctx;
BackgroundTask(Context ctx)
{
this.ctx=ctx;
}
protected String doInBackground(String... params) {
String reg_url="http://127.0.0.1/prj/register.php";
String method=params[0];
if(method.equals("register"))
{
String name=params[1];
String password=params[2];
String contact=params[3];
String country=params[4];
try {
URL url=new URL(reg_url);
HttpURLConnection httpURLConnection=(HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
OutputStream os=httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter=new BufferedWriter(new OutputStreamWriter(os,"UTF-8"));
String data= URLEncoder.encode("name","UTF-8")+"="+URLEncoder.encode(name,"UTF-8")+"&"+
URLEncoder.encode("password","UTF-8")+"="+URLEncoder.encode(password,"UTF-8")+"&"+
URLEncoder.encode("contact","UTF-8")+"="+URLEncoder.encode(contact,"UTF-8")+"&"+
URLEncoder.encode("country","UTF-8")+"="+URLEncoder.encode(country,"UTF-8");
bufferedWriter.write(data);
bufferedWriter.flush();
bufferedWriter.close();
os.close();
InputStream IS=httpURLConnection.getInputStream();
IS.close();
return "Registration Successful";
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onPostExecute(String result) {
Toast.makeText(ctx,result,Toast.LENGTH_LONG).show();
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
}
Register.java
public class Register extends AppCompatActivity {
EditText eName,ePassword,eContact,eCountry;
String name,password,contact,country;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
//Declare Edit Text and Casting
eName= (EditText) findViewById(R.id.EDName);
ePassword= (EditText) findViewById(R.id.EDPassword);
eContact= (EditText) findViewById(R.id.EDContact);
eCountry= (EditText) findViewById(R.id.EDCountry);
}
public void regUser(View view)
{
name=eName.getText().toString();
password=ePassword.getText().toString();
contact=eContact.getText().toString();
country=eCountry.getText().toString();
String method="register";
BackgroundTask backgroundTask=new BackgroundTask(this);
backgroundTask.execute(method,name,password,contact,country);
finish();
}
}
Verwenden Sie einen Debugger und/oder echo in php, so dass Sie sehen, was passiert
wenn ich ausgetestet,,,versuchen Sie Abschnitt nicht ausgeführt BackgroundTask.java
wenn ich ausgetestet,,,versuchen Sie Abschnitt nicht ausgeführt BackgroundTask.java
InformationsquelleAutor Ali Saravani | 2016-08-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern Sie Ihre
doInBackground
- Methode code:und in Ihrem register.php:
entfernen
finish()
imregUser
. Ihre Tätigkeit beendet, noch bevor das Ergebnis zurückgegeben wird.ich entfernte beenden funktioniert aber nicht wieder...was ist Schriftsteller.close() in deinem code?
ich bearbeitete meinen code. und Sie haben, um
Logs
zu überprüfen, wo genau dein code nicht funktioniertwenn ich ausgetestet,,,versuchen Sie Abschnitt nicht ausgeführt, im BackgroundTask.java.....was ist Ihre Idee?
InformationsquelleAutor M.Waqas Pervez
Wenn Ihr mit einem Emulator verwenden 10.0.2.2 statt 127.0.0.1. Wenn Sie eine aktuelle android-Gerät dann die IP des Servers/Rechners, auf dem Ihre PHP befindet. Beide server/deine Maschine sollte auf dem gleichen Netzwerk, wenn Sie mit tatsächlichen Gerät über wifi.
InformationsquelleAutor Imran Ali