sql >> Base de Datos >  >> RDS >> Mysql

Los datos de Swift httppost no se insertan en la base de datos MySQL

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:

  1. No recomendaría iniciar sesión como root .

  2. Asegúrese de usar mysqli_real_escape_string para protegerse contra ataques de inyección SQL (ver punto 1).

  3. 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 el insert declaración. Incluso si solo tiene esas dos columnas, es una buena manera de "preparar el futuro" de su código.

  4. 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.