J'ai une application Android qui envoie une chaîne JSON à mon serveur et il est formaté comme suit:Ayant du mal à l'analyse syntaxique JSON avec PHP
{"drink_name":"testing","phone_number":"5555555555"}
Lorsque j'utilise la commande: SELECT * FROM commandes, il montre que les entrées vides ont été insérées dans la table.
Je pense que mon problème provient de mon script PHP (principalement parce que je suis nouveau sur PHP). Suis-je pars correctement le json? Voici le script que j'ai écrit.
<?php
$handle = mysql_connect('localhost',USERNAME,PASSWORD);
if($handle==false)
{
die('No database connection');
}
$db=mysql_select_db('r2bar2');
$json = file_get_contents('php://input');
$obj = json_decode($json);
mysql_query("INSERT INTO orders (phone_number, drink_name)
VALUES ('".$obj->{'phone_number'}."', '".$obj->{'drink_name'}."')");
mysql_close($handle);
?>
EDIT: Voici mon code Android si elle est une aide.
protected void sendJson(final String phnNmbr, final String drink) {
Thread t = new Thread(){
public void run() {
Looper.prepare(); //For Preparing Message Pool for the child Thread
HttpClient client = new DefaultHttpClient();
HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000); //Timeout Limit
HttpResponse response;
JSONObject json = new JSONObject();
try{
HttpPost post = new HttpPost("http://kubie.dyndns-home.com/R2Bar2/sendOrder.php");
json.put("phone_number", phnNmbr);
json.put("drink_name", drink);
StringEntity se = new StringEntity("orders: " + json.toString());
se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
post.setEntity(se);
response = client.execute(post);
/*Checking response */
Toast.makeText(getApplicationContext(), json.toString(), Toast.LENGTH_LONG).show();
if(response!=null){
InputStream in = response.getEntity().getContent(); //Get the data in the entity
}
}
catch(Exception e){
e.printStackTrace();
//createDialog("Error", "Cannot Estabilish Connection");
}
Looper.loop(); //Loop in the message queue
}
};
t.start();
}
Eh bien, qu'est-ce que 'var_dump ($ obj)' vous donne? – deceze
De même, comment l'application Android envoie-t-elle les données? La requête est-elle un POST ou GET? –
essayez d'activer le rapport d'erreurs/la consignation des erreurs et de vérifier à nouveau la sortie. –