Si le fait que le serveur fasse simplement écho à la demande fonctionne, le problème réside dans le serveur, pas dans le code client. Je suggérerais d'ajouter une gestion des erreurs dans le code PHP :
<?php
// specify that this will return JSON
header('Content-type: application/json');
// open database
$con = mysqli_connect("localhost","user","password","notify");
// Check connection
if (mysqli_connect_errno()) {
echo json_encode(array("success" => false, "message" => mysqli_connect_error(), "sqlerrno" => mysqli_connect_errno()));
exit;
}
// get the parameters
$field1 = mysqli_real_escape_string($con, $_REQUEST["firstName"]);
$field2 = mysqli_real_escape_string($con, $_REQUEST["lastName"]);
// perform the insert
$sql = "INSERT INTO user (first_name, last_name) VALUES ('{$field1}', '{$field2}')";
if (!mysqli_query($con, $sql)) {
$response = array("success" => false, "message" => mysqli_error($con), "sqlerrno" => mysqli_errno($con), "sqlstate" => mysqli_sqlstate($con));
} else {
$response = array("success" => true);
}
echo json_encode($response);
mysqli_close($con);
?>
Remarques :
-
Je ne recommanderais pas de vous connecter en tant que
root
. -
Assurez-vous d'utiliser
mysqli_real_escape_string
pour vous protéger des attaques par injection SQL (voir point 1). -
Je ne sais pas si votre
user
table contient d'autres champs, mais si c'est le cas, vous pouvez spécifier les noms de colonne dans leinsert
déclaration. Même si vous n'avez que ces deux colonnes, c'est un bon moyen de « pérenniser » votre code. -
Remarque, j'ai changé cela pour générer une réponse JSON. Je le fais parce que cela facilite l'analyse et la gestion de la réponse par le code client. Je vais laisser le
NSJSONSerialization
à vous.