sql >> Databáze >  >> RDS >> Mysql

Data Swift httppost se nevkládají do databáze MySQL

Pokud server pouze odešle požadavek funguje, pak problém spočívá na serveru, nikoli v kódu klienta. Navrhoval bych přidat nějaké zpracování chyb v kódu 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);

?>

Poznámky:

  1. Nedoporučoval bych přihlášení jako root .

  2. Ujistěte se, že používáte mysqli_real_escape_string abyste se chránili před útoky SQL injection (viz bod 1).

  3. Nevím, jestli váš user tabulka obsahuje další pole, ale pokud ano, možná budete chtít zadat názvy sloupců v insert prohlášení. I když máte pouze tyto dva sloupce, je to dobrý způsob, jak „zajistit budoucnost“ kódu.

  4. Všimněte si, že jsem to změnil, abych generoval odpověď JSON. Dělám to proto, že to kódu klienta usnadňuje analýzu a zpracování odpovědi. Nechám NSJSONSerialization vám.




  1. alternativa mysqli_stmt_get_result pro php 5.2.6

  2. Změňte oddělovač funkce WM_CONCAT Oracle 11gR2

  3. AES šifrování v mysql a php

  4. Odlišný přístup k použití klauzule IN v MySql