我想在MySQL中保存数据。我使用PHP和我的代码:如何通过Alamofire将数据插入Swift 3中的MySQL?
<?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>\"}")
我的代码有什么问题?
对于初学者来说,它是对** SQL Injection **攻击广泛开放的。使用**参数化语句**来保护你自己,同时自动解决你的问题,因为使用参数化语句,你不需要*将字符串值换成引号*。 –
@FranzGleichmann我不明白。 – Mayday