Как можно вставить данные в MySQL в Swift 3 через Alamofire?

Я хочу сохранить данные в MySQL. Я использую php и мои коды:

<?php

header('Content-Type: text/html; charset=UTF-8');

//Connect to Database
include "Connect.php";

//getting values
$name = $_POST['name'];
$email = $_POST['email'];

//query
$q="INSERT INTO users (name, email) VALUES ($name,$email)";
if (mysqli_query($connection, $q)) {
$response['error']=false;
$response['message']="New record created successfully";
} else {
$response['error']=true;
$response['message']="Error: " . $q . "<br>" .     mysqli_error($connection);
}

echo json_encode($response);
mysqli_close($connection);

И я использую Alamofire и мои коды:

    let parameters: Parameters = [
"name": "xxxx",
"email": "yyyy"]

Alamofire.request(api, method: .post, parameters: parameters, encoding: URLEncoding.httpBody).responseJSON { response in

if let data = response.data {
let json = String(data: data, encoding: String.Encoding.utf8)
print("Response: \(json)")
}
}

Когда я запускаю Xcode, я получаю эту ошибку:

Response: Optional("{\"error\":true,\"message\":\"Error: INSERT INTO users (name, email) VALUES (xxxx,yyyy)<br>\"}")

Что не так в моем коде?

0

Решение

Без учета SQL-инъекция атаки, я думаю, что проблема в SQL заключается в том, что одинарные кавычки пропущены для значений. Улучшение:

$q="INSERT INTO users (name, email) VALUES (\'$name\',\'$email\')";
0

Другие решения

Используйте это и проверьте название столбца и тип

INSERT INTO users (name, email) VALUES('abcd', 'abcd@mail.com')
-2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector