远程存储iOS应用程序的数据

时间:2013-05-27 19:21:05

标签: ios database

我希望我的应用程序在注册时远程存储用户的数据(可能在MySQL数据库中)。我见过有关通过MySQL和JSON检索数据的教程,但我似乎无法找到有关将数据存储到MySQL数据库的任何信息。也许这不是最好的方法吗?

2 个答案:

答案 0 :(得分:1)

你的问题有点太模糊,无法回答实施细节,所以我概述了我将如何处理这个问题:

  1. 确定您是想自己创建服务还是使用云数据存储提供商(有些是免费的并提供iOS库。一个简单的例子是Apple自己的iCloud)。
  2. 如果您创建自己的服务,请使用您喜欢的Web技术。例如,请查看Tastypie
  3. 使用RESTful iOS客户端库(例如RESTkit)连接到您的服务。
  4. 如果您没有任何具体要求,我将首先调查Core Data + iCloud是否符合要求。这应该可以让你在最短的时间内完成并运行。

答案 1 :(得分:0)

我认为您可以从您的应用中调用.php页面,如下所示:

NSString *urlWithGetVars=@"http://www.somedomain.com/somepage.php?var1=avar&var2=anothervar";
    NSURL *url = [NSURL URLWithString:urlWithGetVars];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    NSURLResponse *response;
    NSError *error;

    NSData *responseData = [NSURLConnection sendSynchronousRequest:request
                                                 returningResponse:&response 
                                                             error:&error];

    //turn response data to string
    NSString *responseString = [[NSString alloc] 
                                initWithData:responseData 
                                encoding:NSUTF8StringEncoding];


    //check if there is any error
    if(!error)
    {
        //log the response
        NSLog(@"Response from server = %@", responseString);


    }    
    else
    {
       //log error
        NSLog(@"Error = %@",error.description);

    }

在你的somepage.php中,将数据写入过程发送到MySql数据库,如下所示:

<?php
$var1=$_GET["var1"];
$var2=$_GET["var2"];

// Make a MySQL Connection
mysql_connect("yoursitehost", "usr", "pass") or die(mysql_error());
mysql_select_db("yourdb") or die(mysql_error());

// Write var1 and var2 to your mysql table
mysql_query("INSERT INTO your_table (var1,var2) VALUES ('".$var1."','".$var2."')");
or die(mysql_error());  
?>

如果您发现任何错误,可能会有一些编码错误让我知道......

PS:NSURLConnection sendSynchronousRequest将阻止用户界面,所以你可能不想使用它