需要您的帮助,IOS Swift将数据发布到Json Alamofire


Need your help, IOS Swift Post data to Json Alamofire

我有一个textlbabelfield,在其中我通过JSon从外部数据库获取数据。现在,我想让我的用户修改这个字段并将其发布到数据库中。但同样,它不起作用,数据库没有改变。请你复习一下我的代码:

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后功能:

    @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的帮助,我发布了答案与大家分享:

我的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帖子请求:

  @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)
        }
    }