Wenn der Server nur die Anfrage zurückgibt, liegt das Problem beim Server, nicht beim Client-Code. Ich würde vorschlagen, dem PHP-Code eine Fehlerbehandlung hinzuzufügen:
<?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);
?>
Hinweise:
-
Ich würde nicht empfehlen, sich als
root
anzumelden . -
Stellen Sie sicher, dass Sie
mysqli_real_escape_string
verwenden um sich vor SQL-Injection-Angriffen zu schützen (siehe Punkt 1). -
Ich weiß nicht, ob Ihr
user
Die Tabelle enthält andere Felder, aber wenn dies der Fall ist, möchten Sie vielleicht die Spaltennamen ininsert
angeben Erklärung. Selbst wenn Sie nur diese beiden Spalten haben, ist dies eine gute Möglichkeit, Ihren Code "zukunftssicher" zu machen. -
Beachten Sie, dass ich dies geändert habe, um eine JSON-Antwort zu generieren. Ich mache das, weil es für den Client-Code einfacher ist, die Antwort zu analysieren und zu verarbeiten. Ich lasse die
NSJSONSerialization
für Sie.