func uploadPostData() {
let parameters: [String: Any] =
["title": "\(titleName!)", // string
"link": "\(link!)", // string
"available_shares": sharesNum!, // int
"risk": riskLevel!, // int
"description": descriptionView.text!, // string
"postID": postID, // string
"price": 0.99,
"timestamp": 700
]
print(parameters)
Alamofire.request("example.com", method: .post, parameters: parameters, encoding: URLEncoding.httpBody, headers: nil)
.responseJSON() { response in
switch response.result {
}
}
Выше мой метод Swift, который вызывает скрипт PHP, который я прикреплю ниже.Я считаю, что проблема заключается в моем PHP, так как запрос POST был определенно получен.Моя база данных действительно обновляется при вызове метода, но данные во всех столбцах имеют значение null / значение по умолчанию.Я попытался распечатать словарь параметров, но он выглядит полностью, как и ожидалось, без нулевых значений.
<?php
$item1 = $_POST['title'];
$item2 = $_POST['link'];
$item3 = $_POST['available_shares'];
$item4 = $_POST['risk'];
$item5 = $_POST['description'];
$item6 = $_POST['postID'];
$item7 = $_POST['price'];
$item8 = $_POST['timestamp'];
// Create connection
$mysqli=mysqli_connect("localhost","username","password","database");
// Check connection
if (mysqli_connect_errno())
{
echo "
Failed to connect to MySQL: " . mysqli_connect_error();
}
$query = "INSERT INTO `TB_POSTS` (postID, timestamp, link, price, title, available_shares, risk, description) VALUES ('".$item6."','.$item8.','".$item2."','".$item7."','".$item1."','".$item3."','".$item4."','".$item5.")";
$result = mysqli_query($mysqli,$query);
echo $result; // sends 1 if insert worked
?>
Нижняя строка, которая выводит 1, если вставка сработала, неожиданно работает.Но опять же, проблема заключается в том, что обновленные данные никогда не появляются в базе данных.Я знаю, что это обновление, потому что есть еще одна строка в таблице, но фактические значения никогда не присутствуют.Я также получил ошибку Alamofire.AFError.ResponseSerializationFailureReason.inputDataNilOrZeroLength при использовании .responseJSON, но когда я изменил его на .responseString, я получу вывод «SUCCESS».Большое спасибо всем, кто может помочь.