php - Android: Unable to insert data in mysql database -
i new android development. making app in user registered through registration form in android. don't errors nor output.
here's source code java:
package com.example.entrepreneurexpress; import java.io.inputstream; import java.util.arraylist; import org.apache.http.httpresponse; import org.apache.http.namevaluepair; 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.annotation.targetapi; import android.app.actionbar; import android.app.activity; import android.content.intent; import android.os.build; import android.os.bundle; import android.view.menu; import android.view.menuitem; import android.view.view; import android.view.view.onclicklistener; import android.widget.button; import android.widget.edittext; import android.widget.toast; public class investorregister extends activity { edittext yourname; edittext email; edittext password; edittext confirmpassword; button btnclear, btnregister; string nm, emailadd, cnfpass, pwd; @targetapi(build.version_codes.honeycomb) @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.investors_registration); actionbar abar = getactionbar(); abar.setdisplayhomeasupenabled(true); yourname = (edittext) findviewbyid(r.id.invregname); email = (edittext) findviewbyid(r.id.invregemail); password = (edittext) findviewbyid(r.id.invregpassword); confirmpassword = (edittext) findviewbyid(r.id.invregconfpassword); btnclear = (button) findviewbyid(r.id.btninvregclear); btnclear.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { if (yourname.length() >= 1) { yourname.settext(""); } if (email.length() >= 1) { email.settext(""); } if (password.length() >= 1) { password.settext(""); } if (confirmpassword.length() >= 1) { confirmpassword.settext(""); } } }); btnregister = (button) findviewbyid(r.id.btninvregregister); btnregister.setonclicklistener(new onclicklistener() { public void onclick(view v) { if( (!yourname.gettext().tostring().equals("")) && (!email.gettext().tostring().equals("")) && (!password.gettext().tostring().equals("")) ) { /*toast.maketext(getapplicationcontext(), "registered !", toast.length_short).show(); intent = new intent(getapplicationcontext(), welcomeinvestor.class); startactivity(i);*/ thread thread = new thread(new runnable() { @override public void run() { try { httpclient httpclient = new defaulthttpclient(); httppost httppost = new httppost("http://122.170.107.27/adroidapp/insert.php"); arraylist<namevaluepair> namevaluepairs = new arraylist<namevaluepair>(3); namevaluepairs.add(new basicnamevaluepair("invname", yourname.gettext().tostring())); namevaluepairs.add(new basicnamevaluepair("invpassword", password.gettext().tostring())); namevaluepairs.add(new basicnamevaluepair("invemail", email.gettext().tostring())); httppost.setentity(new urlencodedformentity(namevaluepairs)); httpresponse response = httpclient.execute(httppost); inputstream inputstream = response.getentity().getcontent(); int status = response.getstatusline().getstatuscode(); if(status == 200) { toast.maketext(getapplicationcontext(), "registered !", toast.length_short).show(); intent = new intent(getapplicationcontext(), welcomeinvestor.class); startactivity(i); } else { toast.maketext(getapplicationcontext(), "some error occured !", toast.length_short).show(); } } catch(exception e) { toast.maketext(getapplicationcontext(), "error "+e.tostring(), toast.length_long).show(); } } }); thread.start(); } else { toast.maketext(getapplicationcontext(), "please fill in details!", toast.length_short).show(); } } }); }
and here's php code:
<?php $output = array(); $con = mysqli_connect("localhost", "root", "root", "androidapp"); if(!$con) { echo "connection aborted !<br />" . mysqli_error($con); } else { echo "connection successful !<br />"; } $name = isset($_post['fullname']) ? $_post['fullname'] : ''; $email = isset($_post['emailaddress']) ? $_post['emailaddress'] : ''; $pasword = isset($_post['password']) ? $_post['password'] : ''; $query = mysqli_query($con, "insert investors (`invname`, `invemail`, `invpassword`) values('".$name."', '".$email."', '".$pasword."')"); if ($query) { $output["success"] = 1; $output["message"] = "successfully inserted"; echo jsonencode($output); } else { $output["success"] = 0; $output["message"] = "insertion failed......"; echo json_encode($output); } mysqli_close($con); ?>
am getting error after updating java code:
04-10 14:02:26.403: e/linker(29292): load_library(linker.cpp:759): library "libmaliinstr.so" not found
i have tried best, failed. kindly me out. thanks.
first of all, strict mode development purpose, debug. , not used while publishing. network communications must made outside main thread. if use strict mode - permitall(), messing normal operation. use asynchtask whatever network communications want.
you can find tutorial here.
http://www.vogella.com/tutorials/androidbackgroundprocessing/article.html#concurrency_asynchtask
also, here directly trying response execute httpclient.execute(httppost);
don't think going work, server needs time respond.
in asynchtask, have method onpostexecute
handle properly.
read http://blog.vogella.com/2012/02/22/android-strictmode-networkonmainthreadexception/ http://blog.vogella.com/2011/04/04/android-strictmode/
Comments
Post a Comment