需要你的帮助,IOS Swift Post 数据到 Json Alamofire
Need your help, IOS Swift Post data to Json Alamofire
我有一个 textlbabelfield,我通过 JSon 从外部数据库获取数据。现在,我想让我的用户修改这个字段并将它 post 到数据库。但是同样,它不起作用,数据库没有改变。请您查看我的代码:
PHP代码:
<?php
/* include db.config.php */
include_once("config.php");
// Get user id
$username = isset($_POST['username']) ? mysql_real_escape_string($_POST['username']) : “”;
$data = isset($_POST['signature']) ? mysql_real_escape_string($_POST['signature']) : “”;
// get user data
mysql_query('SET NAMES "utf8"');
$sql = mysql_query("UPDATE users SET signature = '$data' WHERE username='$username'");
die;
mysql_close($conn);
/* JSON Response */
?>
Alamofire post 功能:
@IBAction func Signature(sender: UIButton) {
var signaturesave1 = self.signature
let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults()
var username = prefs.valueForKey("USERNAME") as NSString
//load and parse the JSON into an array
Alamofire.request(.POST, "http://mywebsite/app/data/jsonsavesignature.php", parameters: ["username": username, "signature":signaturesave1]).responseJSON { (request, response, data, error) in
if (error != nil)
{
// got an error in getting the data, need to handle it
println("error calling GET usersdata")
println(error)
}
else {
self.performSegueWithIdentifier("signature_to_persoinfo", sender: self)
}
}
}
如果要更新现有数据,则需要使用更新查询,而不是插入查询。插入查询就是插入一条新数据。所以将 mysql_query("INSERT signature INTO users WHERE username='$username'");
替换为 mysql_query("UPDATE users SET signature = '$data' WHERE username='$username'");
,其中 $data 是用户的签名。
我得到答案了,感谢Karthikeyani的帮助,我post把答案分享给大家:
我的PHP脚本:
<?php
/* include db.config.php */
include_once("config.php");
// Get user id
$username = isset($_POST['username']) ? mysql_real_escape_string($_POST['username']) : “”;
$data = isset($_POST['signature']) ? mysql_real_escape_string($_POST['signature']) : “”;
// get user data
mysql_query('SET NAMES "utf8"');
$sql = mysql_query("UPDATE users SET signature = '$data' WHERE username='$username'");
mysql_close($conn);
/* JSON Response */
?>
我的 Alamofire post 请求:
@IBAction func Signature(sender: UIButton) {
var signaturesave1 = self.signature.text
let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults()
var username = prefs.valueForKey("USERNAME") as NSString
let parameters =
["username": username, "signature":signaturesave1]
//load and parse the JSON into an array
Alamofire.request(.POST, "http://mywebsite.com/app/data/jsonsavesignature.php", parameters: parameters).responseJSON { (request, response, data, error) in
self.performSegueWithIdentifier("signature_to_persoinfo", sender: self)
}
}
我有一个 textlbabelfield,我通过 JSon 从外部数据库获取数据。现在,我想让我的用户修改这个字段并将它 post 到数据库。但是同样,它不起作用,数据库没有改变。请您查看我的代码:
PHP代码:
<?php
/* include db.config.php */
include_once("config.php");
// Get user id
$username = isset($_POST['username']) ? mysql_real_escape_string($_POST['username']) : “”;
$data = isset($_POST['signature']) ? mysql_real_escape_string($_POST['signature']) : “”;
// get user data
mysql_query('SET NAMES "utf8"');
$sql = mysql_query("UPDATE users SET signature = '$data' WHERE username='$username'");
die;
mysql_close($conn);
/* JSON Response */
?>
Alamofire post 功能:
@IBAction func Signature(sender: UIButton) {
var signaturesave1 = self.signature
let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults()
var username = prefs.valueForKey("USERNAME") as NSString
//load and parse the JSON into an array
Alamofire.request(.POST, "http://mywebsite/app/data/jsonsavesignature.php", parameters: ["username": username, "signature":signaturesave1]).responseJSON { (request, response, data, error) in
if (error != nil)
{
// got an error in getting the data, need to handle it
println("error calling GET usersdata")
println(error)
}
else {
self.performSegueWithIdentifier("signature_to_persoinfo", sender: self)
}
}
}
如果要更新现有数据,则需要使用更新查询,而不是插入查询。插入查询就是插入一条新数据。所以将 mysql_query("INSERT signature INTO users WHERE username='$username'");
替换为 mysql_query("UPDATE users SET signature = '$data' WHERE username='$username'");
,其中 $data 是用户的签名。
我得到答案了,感谢Karthikeyani的帮助,我post把答案分享给大家:
我的PHP脚本:
<?php
/* include db.config.php */
include_once("config.php");
// Get user id
$username = isset($_POST['username']) ? mysql_real_escape_string($_POST['username']) : “”;
$data = isset($_POST['signature']) ? mysql_real_escape_string($_POST['signature']) : “”;
// get user data
mysql_query('SET NAMES "utf8"');
$sql = mysql_query("UPDATE users SET signature = '$data' WHERE username='$username'");
mysql_close($conn);
/* JSON Response */
?>
我的 Alamofire post 请求:
@IBAction func Signature(sender: UIButton) {
var signaturesave1 = self.signature.text
let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults()
var username = prefs.valueForKey("USERNAME") as NSString
let parameters =
["username": username, "signature":signaturesave1]
//load and parse the JSON into an array
Alamofire.request(.POST, "http://mywebsite.com/app/data/jsonsavesignature.php", parameters: parameters).responseJSON { (request, response, data, error) in
self.performSegueWithIdentifier("signature_to_persoinfo", sender: self)
}
}