Mysql
 sql >> Database >  >> RDS >> Mysql

I dati Swift httppost non vengono inseriti nel database MySQL

Se il server esegue semplicemente l'eco della richiesta, il problema risiede all'interno del server, non nel codice client. Suggerirei di aggiungere un po' di gestione degli errori nel codice 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);

?>

Note:

  1. Non consiglierei di accedere come root .

  2. Assicurati di utilizzare mysqli_real_escape_string per proteggersi dagli attacchi SQL injection (vedi punto 1).

  3. Non so se il tuo user la tabella contiene altri campi, ma in tal caso, potresti voler specificare i nomi delle colonne in insert dichiarazione. Anche se hai solo queste due colonne, è un buon modo per rendere il tuo codice "a prova di futuro".

  4. Nota, l'ho modificato per generare una risposta JSON. Lo faccio perché rende più facile per il codice client analizzare e gestire la risposta. Lascerò la NSJSONSerialization a te.