2016-12-04 2 views
1

Моя проблема заключается в том, что код iOS Swift 3 не обновляет базу данных mysql, она должна быть всякий раз, когда код sendData() инициализируется, чтобы добавить +1 и обновить базу данных столбца testPop.Быстрый код, не обновляющий базу данных MySQL

У моего приложения есть табличное представление со строками разных объектов, у меня есть кнопка в каждой строке, которая получает indexPath.row, чтобы узнать, в какой кнопке она была нажата. Используя эту информацию, мой код sendData() должен добавить +1 к testPop конкретной строки.

Надейтесь, что сделал смысл, спасибо.

Swift 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

, так как вы читаете id в коде PHP вам нужно пост тела включают id:

let bodyData = String(1) 

должен быть таким:

let itemId = String(1) 
let bodyData = "id=\(itemId)" 
Смежные вопросы