Si hacer que el servidor solo haga eco de la solicitud funciona, entonces el problema radica en el servidor, no en el código del cliente. Sugeriría agregar algo de manejo de errores en el código 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);
?>
Notas:
-
No recomendaría iniciar sesión como
root. -
Asegúrese de usar
mysqli_real_escape_stringpara protegerse contra ataques de inyección SQL (ver punto 1). -
No sé si tu
userla tabla tiene otros campos, pero si es así, es posible que desee especificar los nombres de las columnas en elinsertdeclaración. Incluso si solo tiene esas dos columnas, es una buena manera de "preparar el futuro" de su código. -
Tenga en cuenta que he cambiado esto para generar una respuesta JSON. Lo hago porque facilita que el código del cliente analice y maneje la respuesta. Dejaré la
NSJSONSerializationpara ti.