Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Swift-httppost-Daten werden nicht in die MySQL-Datenbank eingefügt

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:

  1. Ich würde nicht empfehlen, sich als root anzumelden .

  2. Stellen Sie sicher, dass Sie mysqli_real_escape_string verwenden um sich vor SQL-Injection-Angriffen zu schützen (siehe Punkt 1).

  3. Ich weiß nicht, ob Ihr user Die Tabelle enthält andere Felder, aber wenn dies der Fall ist, möchten Sie vielleicht die Spaltennamen in insert angeben Erklärung. Selbst wenn Sie nur diese beiden Spalten haben, ist dies eine gute Möglichkeit, Ihren Code "zukunftssicher" zu machen.

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