将 json 对象数据发送到 android 中的远程 mysql 数据库

Send json object data to remote mysql database in android

我已使用 internet.But 上发布的方法成功地从远程数据库获取数据 我无法将数据推送(插入)到同一个 table。 我添加了一个静态计数器只是为了检查代码是否达到给定的 url,但正如预期的那样,它 fails.Below 是我保存在远程服务器文件中的 php 文件经理。

<?php 
$json=$_GET [ 'json']; $json=f ile_get_contents( 'php://input'); 
$obj=json_decode($json);
$conn=mysql_connect( "mydatabasename", "myusername", "mypassword") or die( "error connecting"); 
mysql_select_db( "mydatabasename",$conn)or die("database couldnot connect");
error_reporting(E_ALL);
$tid=$_POST[ 'tid']; 
$name=$_POST[ 'name'];
mysql_query( "insert into mytablename(tid,name) values($tid,$name)");
?>

我在 android 布局中进行了两次输入,tid、名称并尝试发送到远程数据库。 注意:出于安全目的,数据库名称和其他详细信息已被隐藏。

如果您正在寻找一种干净的方式..我建议您这样做: register.php

  <?php
include('connect.php');
$response = array();   
if (isset($_POST['Nom']) && isset($_POST['Prenom']) && isset($_POST['Email'])&& isset($_POST['Mdp'])) { //checking if the required fields are set

    $Nom = $_POST['Nom'];//the family name
    $Prenom = $_POST['Prenom']; //last name
    $Email = $db->real_escape_string($_POST['Email']); 
    $Mdp = $db->real_escape_string($_POST['Mdp']);  //the password

    if ($res = $db->query("SELECT * FROM `patient` WHERE `Email_p`='$Email' ")) {  
    $row_cnt = $res->num_rows; }
     if($row_cnt>0) {      
        $response["success"] = 0;
        $response["message"] = "Email exists"; }
    if ($row_cnt <1){
    $result = mysqli_query($db,"INSERT INTO `patient`(`Id_p`, `Nom`,  `Prenom`, `Email_p`, `Mdp`) VALUES ('','$Nom','$Prenom','$Email','$Mdp')");

    if ($result ) { 
        $response["success"] = 1; // if account created we set success value to 1
        $response["message"] = "account created"; 
    } else {                    
        $response["success"] = 0;
        $response["message"] = "Oops Error"; 
    }}
 }else { 
    $response["success"] = 0;
    $response["message"] = "Fields messing";


} 
   echo json_encode($response);
?>

在android ... yourActivity.java

  class CreerNouveauCompte extends AsyncTask<String, String, String> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        pDialog = new ProgressDialog(inscription.this);
        pDialog.setMessage(getString(R.string.inscriEnCours));
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(true);
        pDialog.show();
    }

    protected String doInBackground(String... args) {
        String nom = edtNom.getText().toString();
        String prenom = edtPrenom.getText().toString();
        String email = edtEmail.getText().toString();
        String mdp = edtMdp.getText().toString();
        JSONObject json;
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("Nom", nom));
        params.add(new BasicNameValuePair("Prenom", prenom));
        params.add(new BasicNameValuePair("Email", email));
        params.add(new BasicNameValuePair("Mdp", mdp));

            json= jsonParser.makeHttpRequest(url_register (your url),
                    "POST", params);
        } 
        try {if(json != null && !json.isNull("success")){
            int success = json.getInt("success");
            s2=json.getString("message");
            if (success == 1) { //the acount created
                Intent intent;
                SharedPreferences settings = getSharedPreferences("compte", 0);
                SharedPreferences.Editor editor = settings.edit();
                editor.putString("nom",edtNom.getText().toString() );
                editor.putString("prenom",edtPrenom.getText().toString() );
                editor.putString("email",edtEmail.getText().toString());
                editor.putString("mdp",edtMdp.getText().toString());

                editor.apply(); 
                    intent = new Intent(inscription.this,MainActivity.class); 

                }
                startActivity(intent);
                finish();
            } else {
            }}
        } catch (JSONException e) {
            e.printStackTrace();
        }

        return null;
    }

    protected void onPostExecute(String file_url) {
        pDialog.dismiss(); 
             }

}

call it like this
new CreerNouveauCompte().execute();

connect.php

 <?php  
$db = new mysqli('localhost', 'root', '', 'rechmed');  
mysqli_set_charset($db,'utf8');
?>
//note i use mysqli ..in your case use mysql

如果您尝试使用此格式解码 JSONObject,请使用以下代码 {"tid":"myTidValue", "name":"myNameValue"}

<?php 

$json=stripslashes($_GET['json']); 
$obj=json_decode($json, true);
$conn=mysql_connect( "mydatabasename", "myusername", "mypassword") or die( "error connecting"); 
mysql_select_db( "mydatabasename",$conn)or die("database couldnot connect");
error_reporting(E_ALL);
$tid=$json['tid']; 
$name=$json['name'];
mysql_query("insert into mytablename(tid,name) values('$tid','$name')");

?>

并使用此格式解码 JSONArray [{"tid":"myTidValue1", "name":"myNameValue1"}, {"tid":"myTidValue2", "name":"myNameValue2"}] 你可以使用下面的代码

<?php 

$json=stripslashes($_GET['json']); 
$obj=json_decode($json, true);
$conn=mysql_connect( "mydatabasename", "myusername", "mypassword") or die( "error connecting"); 
mysql_select_db( "mydatabasename",$conn)or die("database couldnot connect");
error_reporting(E_ALL);

foreach ($json as $data){
    $tid=$data['tid']; 
    $name=$data['name'];
    mysql_query("insert into mytablename(tid,name) values('$tid','$name')");
}
?>

如果两者都不起作用,post 您的 android

代码