Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Dados httppost Swift não sendo inseridos no banco de dados MySQL


Se fazer com que o servidor apenas echo a solicitação funcione, o problema está no servidor, não no código do cliente. Eu sugeriria adicionar algum tratamento de erros no código 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);

?>

Notas:

  1. Eu não recomendaria fazer login como root .

  2. Certifique-se de usar mysqli_real_escape_string para se proteger contra ataques de injeção de SQL (consulte o ponto 1).

  3. Não sei se seu user table tem outros campos, mas se sim, você pode querer especificar os nomes das colunas no insert demonstração. Mesmo se você tiver apenas essas duas colunas, é uma boa maneira de "à prova de futuro" do seu código.

  4. Observe que alterei isso para gerar uma resposta JSON. Eu faço isso porque torna mais fácil para o código do cliente analisar e manipular a resposta. Vou deixar a NSJSONSerialization para você.