2015-04-20 81 views
0

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

<?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,名称中输入了两个输入并尝试发送到远程数据库。 注意:出于安全目的,数据库名称和其他详细信息已被隐藏。

+0

你怎么用JSON对象呢? –

+0

您使用Get方法forjson和Post for tid并命名为什么?可能是问题所在 –

回答

0

如果你想找一个干净的方式..我建议你做这样的事情: 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(); 

的连接.php

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

使用下面的代码如果您尝试使用此格式解码JSONObject {“ TID “:” myTidValue”, “名称”: “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”, “名称”: “myNameValue1”},{ “TID”: “myTidValue2”, “名”: “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')"); 
} 
?> 

如果没有作品,发表您的代码为Android