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

Swift httppost-data indsættes ikke i MySQL-databasen

Hvis at have serveren til blot at ekko anmodningen virker, så ligger problemet på serveren, ikke klientkoden. Jeg vil foreslå at tilføje noget fejlhåndtering i PHP-koden:

<?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);

?>

Bemærkninger:

  1. Jeg vil ikke anbefale at logge ind som root .

  2. Sørg for at bruge mysqli_real_escape_string for at beskytte dig selv mod SQL-injektionsangreb (se punkt 1).

  3. Jeg ved ikke, om din user tabellen har andre felter i sig, men hvis det er tilfældet, vil du måske angive kolonnenavnene i insert udmelding. Selvom du kun har disse to kolonner, er det en god måde at "fremtidssikre" din kode på.

  4. Bemærk, jeg har ændret dette for at generere JSON-svar. Det gør jeg, fordi det gør det nemmere for klientkoden at parse og håndtere svaret. Jeg forlader NSJSONSerialization til dig.




  1. Docker MYSQL '[2002] forbindelse nægtet'

  2. hvordan man bruger XMLImporter og FndXdfCmp i Oracle EBS

  3. tempdb-forbedringer i SQL Server 2019

  4. MySQL fejlkode:1175 under OPDATERING i MySQL Workbench