我正在尝试运行正在创建数据透视表的查询。该查询在PHP之外可以很好地运行,但是在 { “CanDTO": [
{
"id": "",
“canId": "3",
"unitId": "3" },
{
"id": "",
“canId": "3",
"unitId": "3" },
{
"id": "",
“canId": "4",
"unitId": "3"
} ],
"id": "", "Date": "01/01/2019", "notes": "" }
SQL错误#:1064-您的SQL语法有错误;检查 与您的MySQL服务器版本相对应的手册 'SET @sql = CONCAT ...附近使用的语法...
没有(希望)深入查询的细节,是否有关于将值分配给变量(例如func postmethod()
{
let params = TotalcanDTO.init(CanDTO: CanDTO.init(id: “”,canId: 3,unitId: 3,),
id:””,
Date: 01/01/2019,
notes: "")
guard let uploadData = try? JSONEncoder().encode(params) else {
return
}
let url = URL(string: "\(ApiManager.url)canApp/saveCanDetailsApp")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
let task = URLSession.shared.uploadTask(with: request, from: uploadData) { data, response, error in
if let error = error {
print ("error: \(error)")
return
}
guard let response = response as? HTTPURLResponse,
(200...299).contains(response.statusCode) else {
print ("server error")
return
}
if let mimeType = response.mimeType,
mimeType == "application/json",
let data = data,
let dataString = String(data: data, encoding: .utf8) {
print ("got data: \(dataString)")
}
}
task.resume()
}
)的事情,在这里需要一种替代语法来与mysqli->prepare()
一起使用?如果我从SET @sql
向下删除所有内容,它将不再阻塞mysqli
。
SET @sql
答案 0 :(得分:1)
问题是您试图在单个prepare
语句中运行多个查询。
您需要为每个查询使用不同的变量创建单独的prepare语句。
定义
准备SQL查询,并返回要用于的语句句柄 对该声明进行进一步的操作。查询必须包含 一条SQL语句。