简体   繁体   English

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

[英]Need your help, IOS Swift Post data to Json Alamofire

I have a textlbabelfield in which I get data from my external database through JSon. 我有一个textlbabelfield,可以通过JSon从外部数据库中获取数据。 Now, I would like to let my user to modify this field and post it to the database. 现在,我想让我的用户修改该字段并将其发布到数据库中。 But again, it doesn't work, the database did not change. 但是同样,它不起作用,数据库没有更改。 Please could you review my code: 请您检查一下我的代码:

PHP Code: 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 func: 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)
    }

        }
}

If you are updating the existing data then you need to use update query, not insert query. 如果要更新现有数据,则需要使用更新查询,而不是插入查询。 Insert query is to insert a new data. 插入查询是要插入新数据。 So replace mysql_query("INSERT signature INTO users WHERE username='$username'"); 因此,替换mysql_query("INSERT signature INTO users WHERE username='$username'"); with mysql_query("UPDATE users SET signature = '$data' WHERE username='$username'"); 使用mysql_query("UPDATE users SET signature = '$data' WHERE username='$username'"); , where $data is the signature of the user. ,其中$ data是用户的签名。

I got the answer, thanks to Karthikeyani for your help, I post the answer to share with everyone: 我得到了答案,感谢Karthikeyani的帮助,我发布了答案并与大家分享:

My PHP Script: 我的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 */

?>

my Alamofire post request: 我的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)

        }
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM