从Android应用程序将数据插入MySQL [英] inserting data into MySQL from android app

查看:89
本文介绍了从Android应用程序将数据插入MySQL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我打算为android开发一个Web应用程序,但是我第一次尝试该实验,所以由于我是新手,所以我无法完成我的任务.它给我一个类似字符串的错误,无法转换为JSONObject.请帮助我,我已经尽了一切努力,但还没有任何解决方案.这是我的代码.

I am going to develop a web application for android but I am trying first time ever this experiment so i am not able to complete my task because I am new in it. Its giving me an error like string cannot convert to JSONObject. please please help me I've tried everything upto me but could not get any solution yet. Here is my code.

public class signup extends Activity implements OnClickListener {
Button signup,cancel;
EditText e1,e2,e3,e4;

String name;
String email;
String  mobile;
String passwd;
InputStream is=null;
String result=null;
String line=null;
int code;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.signupfrag);

    if (android.os.Build.VERSION.SDK_INT > 9) {
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
    }

    signup=(Button)findViewById(R.id.reg);
    cancel=(Button)findViewById(R.id.regcancel);

    e1=(EditText)findViewById(R.id.name);
    e2=(EditText)findViewById(R.id.uid);
    e3=(EditText)findViewById(R.id.contact);
    e4=(EditText)findViewById(R.id.passwd); 

    signup.setOnClickListener(this);
    cancel.setOnClickListener(this);
}
public void onClick(View v) {
    // TODO Auto-generated method stub
    if(v.getId()==R.id.reg)
    {
        name = e1.getText().toString();
        email = e2.getText().toString();
        mobile = e3.getText().toString();
        passwd = e4.getText().toString();

        insert();
      Intent i=new Intent(signup.this,MainActivity.class);
      startActivity(i);
    }

    if(v.getId()==R.id.regcancel)
    {
      e1.setText(null);
      e2.setText(null);
      e3.setText(null);
      e4.setText(null);
    }
}
private void insert() {
    // TODO Auto-generated method stub
    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();


    nameValuePairs.add(new BasicNameValuePair("fname",name));
    nameValuePairs.add(new BasicNameValuePair("email",email));
    nameValuePairs.add(new BasicNameValuePair("mobile",mobile));
    nameValuePairs.add(new BasicNameValuePair("passwd",passwd));

        try
        {
        HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://192.168.43.73/htdocs/insert1.php");//10.0.2.2
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost); 
            HttpEntity entity = response.getEntity();
            is = entity.getContent();
            Log.e("pass 1", "connection success ");
    }
        catch(Exception e)
    {
            Log.e("Fail 1", e.toString());
            Toast.makeText(getApplicationContext(), "Invalid IP Address",
            Toast.LENGTH_LONG).show();
    }     

        try
        {
            BufferedReader reader = new BufferedReader
            (new InputStreamReader(is,"iso-8859-1"),8);
            StringBuilder sb = new StringBuilder();
            while ((line = reader.readLine()) != null)
        {
                sb.append(line + "\n");
            }
            is.close();
            result = sb.toString();
        Log.e("pass 2", "connection success ");
    }
        catch(Exception e)
    {
            Log.e("Fail 2", e.toString());
    }     

    try
    {
            JSONObject json_data = new JSONObject(result);
            code=(json_data.getInt("code"));

            if(code==1)
            {
        Toast.makeText(getBaseContext(), "Inserted Successfully",
            Toast.LENGTH_SHORT).show();
            }
            else
            {
         Toast.makeText(getBaseContext(), "Sorry, Try Again",
            Toast.LENGTH_LONG).show();
            }
    }
    catch(Exception e)
    {
        Log.e("log_tag", "Error parsing data "+e.toString());
        Log.e("log_tag", "Failed data was:\n" + result);
            Log.e("Fail 3", e.toString());
    }       
  }
}

这是我的php代码

<?php
$host='127.0.0.1';
$uname='root';
$pwd='password';
$db="resumemaker";


$con = mysql_connect("localhost", "root");
mysql_select_db($db,$con) or die("db selection failed");

$fname=$_REQUEST['fname'];
$email=$_REQUEST['email'];
$mobile=$_REQUEST['mobile'];
$passwd=$_REQUEST['passwd'];



$flag['code']=0;

if($r=mysql_query("insert into sample values('$fname','$email','$mobile','$passwd') ",$con))
{
    $flag['code']=1;
    //echo"hi";
}

print(json_encode($flag));
mysql_close($con);
?>

在此先感谢......

Thanks In Advance....

推荐答案

您未将其编码为json,请参见本示例,它将为您提供100%正常工作的代码

Your are not encoding it into json see this example will help you its 100% percent working code

Index.php

Index.php

<?php

   header("Content-Type:application/json");

   include("function.php");

$fname=$_REQUEST['fname'];
$email=$_REQUEST['email'];
$mobile=$_REQUEST['mobile'];
$passwd=$_REQUEST['passwd'];

 $record = fetchrecord($fname,$email,$mobile,$passwd);


         if(empty($record))
         {
           deliverresponse(200,"Record not found",NULL,0);  
         }
         else
         {
           deliverresponse(200,"Record Displayed",$record,1);   
         }


   function deliverresponse($status,$status_message,$data,$success)
   {
         header("HTTP/1.1 $status $status_message");
         $response['status'] = $status;
         $response['status_message'] = $status_message;
          $response['code'] = $code;
          $response['data'] = $data;
          $jsonresponse = json_encode($response);
          echo $jsonresponse;

   }
?>

Function.php

Function.php

<?php
        $conn = mysql_connect("localhost", "root", "");

        mysql_select_db('your db name', $conn);

  function fetchrecord($fname,$email,$mobile,$passwd)
  {


     $qur = mysql_query("INSERT INTO `sample` (fname,email,mobile,passwd) VALUES (NULL, '$fname','$email','$mobile','$passwd')") or die ("Query Failed");

     if($qur)
     {
        $msg = "Record Inserted";   

        $user[] = array($msg); 

     }
     else
     {
       $msg = "Record not Inserted";   

        $user[] = array($msg);   
     }
        return $user;

  }

使用Async类进行网络线程

use Async Class for net threading

 public class SignupProcess extends  AsyncTask<String, String, String>

    {
        JSONObject json = new JSONObject();
   private static final String TAG_SUCCESS = "code";
        @Override
        protected void onPreExecute() {

            pDialog = new ProgressDialog(signup.this);
            pDialog.setMessage("Login..");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(true);
            pDialog.show();

            super.onPreExecute();
        }

        @Override
        protected String doInBackground(String... args) {




            List<NameValuePair> pair = new ArrayList<>();
            pair.add(new BasicNameValuePair("name", name));
            pair.add(new BasicNameValuePair("email", email));
            pair.add(new BasicNameValuePair("password", mobile));
            pair.add(new BasicNameValuePair("status",String,psswd);


            json = JSONParser.makeHttpRequest("http://xxxxxxx","GET", pair);

            Log.d("Create Response", json.toString());

            try {

                int success = json.getInt(TAG_SUCCESS);
                getstatus = success;
                if (success == 1) {

                    Log.d("success!", json.toString());

                }

                else if (success==0){


                    return json.getString(TAG_SUCCESS);

                }


            } catch (JSONException e) {
                e.printStackTrace();
            }
            return null;
        }

JSONParser.java

JSONParser.java

public class JSONParser {

    static InputStream is = null;
    static JSONObject jObj = null;
    static String json = "";
    public static String Result=null;

    public JSONParser()
    {

    }

    public static JSONObject makeHttpRequest(String url,String method, List<NameValuePair>  pair) {

        try {

            // check for request method
            if(method.equals("POST")){
                // request method is POST
                // defaultHttpClient
                DefaultHttpClient httpClient = new DefaultHttpClient();
                HttpPost httpPost = new HttpPost(url);
                httpPost.setEntity(new UrlEncodedFormEntity(pair));

                HttpResponse httpResponse = httpClient.execute(httpPost);
                HttpEntity httpEntity = httpResponse.getEntity();
                is = httpEntity.getContent();

            }else if(method.equals("GET")){
                // request method is GET
                DefaultHttpClient httpClient = new DefaultHttpClient();
                String paramString = URLEncodedUtils.format(pair, "utf-8");
                url += "?" + paramString;
                HttpGet httpGet = new HttpGet(url);

                HttpResponse httpResponse = httpClient.execute(httpGet);
                HttpEntity httpEntity = httpResponse.getEntity();
                is = httpEntity.getContent();
            }

        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    is, HTTP.UTF_8), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            json = sb.toString();
            Result = json;
        } catch (Exception e) {
            Log.e("Buffer Error", "Error converting result " + e.toString());
        }

        // try parse the string to a JSON object
        try {
            jObj = new JSONObject(json);
        } catch (JSONException e) {
            Log.e("JSON Parser", "Error parsing data " + e.toString());
        }

        return jObj;
    }


}

在按钮"上单击侦听器

new SignupProcess().execute();

这篇关于从Android应用程序将数据插入MySQL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆