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_string
para protegerse contra ataques de inyección SQL (ver punto 1). -
No sé si tu
user
la tabla tiene otros campos, pero si es así, es posible que desee especificar los nombres de las columnas en elinsert
declaració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
NSJSONSerialization
para ti.