简体   繁体   中英

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. 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
/* 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:

    @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'"); with mysql_query("UPDATE users SET signature = '$data' WHERE username='$username'"); , where $data is the signature of the user.

I got the answer, thanks to Karthikeyani for your help, I post the answer to share with everyone:

My PHP Script:

 <?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:

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

        }
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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