2016-12-04 23 views
1

我的問題是,Swift 3的iOS代碼不會更新mysql數據庫,它應該在sendData()代碼初始化時添加+1並更新testPop列數據庫。我的應用程序具有不同對象行的tableview,每行都有一個按鈕,它獲取indexPath.row以知道哪個按鈕在哪個行中被點擊了。使用該信息,我的sendData()代碼是應該爲特定行的testPop添加+1。Swift代碼沒有更新MySQL數據庫

希望有道理,謝謝。

斯威夫特3代碼:將數據發送到數據庫:

func sendData() { 

    let postDataURL = "http://exampleip.com/Send.php" 
    let url: NSURL = NSURL(string: postDataURL)! 
    let request: NSMutableURLRequest = NSMutableURLRequest(url:url as URL) 

    let bodyData = String(1) 

    request.httpMethod = "POST" 
    request.httpBody = bodyData.data(using: String.Encoding.utf8) 
    NSURLConnection.sendAsynchronousRequest(request as URLRequest, queue: OperationQueue.main) 
    { 
     (response, data, error) in 
     print(response!) 

     if let httpResponse = response as? HTTPURLResponse { 
      let statusCode = httpResponse.statusCode 

      if statusCode==200 { 
       print("Connection Successful") 

      } else { 
       print("Connection Failed (!200)") 
      } 
     } 
    } 
} 

PHP代碼:

<?php 

$host = "host"; 
$db = "db"; 
$user = "user"; 
$pass = "pass"; 

$connection = mysql_connect($host,$user,$pass); 

// Guessing: Posting into MySQL Object 
$id = $_POST["id"]; 

// Checking if connection can be established 
if(!$connection){ 
    die("Connection Failed"); 
} 
else 
{ 
    // Selecting Database 
    $dbconnect = mysql_select_db($db, $connection); 

    // Check if it can connect to Database 
    if(!$dbconnect){ 
     die("Unable to connect to Database"); 
    } 
    else 
    { 
     $query = sprintf("UPDATE tests SET testPop=testPop+1 WHERE id = %d", $id); 

     $resultset = mysql_query($query, $connection); 

     echo "Successfully added"; 
     echo $query; 
    } 
} 

?> 

MySQL代碼:

CREATE TABLE IF NOT EXISTS `tests` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
`testName` varchar(255) DEFAULT NULL, 
`testPop` int(11) DEFAULT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=13 ; 

INSERT INTO `tests` (`id`, `testName`, `testPop`) VALUES 
(1, 'Test 1', '0'), 
(2, 'Test 2', '0'), 
(3, 'Test 3', '0'), 
(4, 'Test 4', '0'), 
(5, 'Test 5', '0'), 
(6, 'Test 6', '0'), 
(7, 'Test 7', '0'), 
(8, 'Test 8', '0'), 
(9, 'Test 9', '0'), 
(10, 'Test 10', '0'), 
(11, 'Test 11', '0'), 
(12, 'Test 12', '0'); 
+1

添加其他服務,比如'http://exampleip.org/tests .php',它的責任是更新你的MySQL表。 – noodlesegg

回答

0

既然你在你的PHP代碼讀取id您需要的崗位體包括id

let bodyData = String(1) 

應該是這樣的:

let itemId = String(1) 
let bodyData = "id=\(itemId)"