У меня есть 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 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) } } }
Если вы обновляете существующие данные, вам нужно использовать запрос на обновление, а не вставлять запрос. Вставить запрос – вставить новые данные. Поэтому замените mysql_query("INSERT signature INTO users WHERE username='$username'");
с mysql_query("UPDATE users SET signature = '$data' WHERE username='$username'");
, где $ data является сигнатурой пользователя.
Я получил ответ, спасибо Картикеяни за вашу помощь, я отправляю ответ, чтобы поделиться со всеми:
Мой скрипт 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) } }