2015-03-30 89 views
-1

的URL從Swift中的遠程數據庫更新記錄我想傳遞url中的整數參數來更新遠程數據庫中的記錄的字段,但出現錯誤。如何做到這一點?我的PHP的作品,但不是如果從Swift調用。你如何執行一個PHP文件來更新Swift中的數據庫記錄?使用帶參數

下面是服務器上更新記錄的php。我如何從Swift應用程序運行這個?從網上我做這種方式,它運行(IdTask是唯一的):

http://.../updateonetasktocompleted.php?x=2

<?php 
$host = "localhost"; //database host server 
$db = "dbname"; //database name 
$user = "dbuser"; //database user 
$pass = "passwd"; //password 

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

//Check to see if we can connect to the server 
if(!$connection) 
{ 
die("Database server connection failed."); 
} 
else 
{ 
//Attempt to select the database 
$dbconnect = mysql_select_db("dbname", $connection); 

//Check to see if we could select the database 
if(!$dbconnect) 
{ 
    die("Unable to connect to the specified database!"); 
} 
else 
{ 
    $idtask_selected = $_GET['x']; 

    $query = "UPDATE ProtocolSets_Protocols SET `ProtocolSets_Protocols`.`Completed`='Yes' WHERE `ProtocolSets_Protocols`.`IdTask`= $idtask_selected";   

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

    echo "Successfully added "; 
    echo $query; 
} 
} 
?> 
+0

多德顯示您的代碼在這裏。還有你得到什麼錯誤。 – SHAZ 2015-03-30 18:49:58

回答

0

如果你想運行從您的銀行代碼命令行PHP腳本,你可以使用NSTask:

var task = NSTask() 
task.launchPath = "/path/to/your/script/script.php" 
task.arguments = ["25"] 
task.launch() 

但是我可能會誤解你的問題,因爲你沒有提供很多上下文。

+0

我增加了更多細節。 – Amy 2015-03-30 20:08:53

+0

對不起,但我還是不太明白你在問什麼。您是否希望將php代碼移植到Swift中,或者只需從swift代碼中調用現有的PHP代碼? – RehcsifMit 2015-03-30 20:19:24

+0

我想從swift代碼中調用現有的php代碼。 – Amy 2015-03-31 16:09:08

0

我想通了,這樣做的一種方法:

let currentIdTask:Int? = NSUserDefaults.standardUserDefaults().stringForKey("selectedIdTask")?.toInt() 

var url: NSString = "http://.../updateonetasktocompleted.php?x=\(currentIdTask!)" 
url = url.stringByReplacingOccurrencesOfString(" ", withString: "%20") 
url = url.stringByReplacingOccurrencesOfString("/n", withString: "%0A") 
println(url) 

var data = NSData(contentsOfURL: NSURL(string: url)!) 
var result = NSString(data: data!, encoding: NSUTF8StringEncoding) 
println(result)