-1

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

4

2 回答 2

1

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

  1. 确定您是要自己创建服务还是使用云数据存储提供商(有些是免费的并提供 iOS 库。一个简单的例子是 Apple 自己的 iCloud)。
  2. 如果您创建自己的服务,请使用您最喜欢的 Web 技术。以Tastypie为例。
  3. 使用 RESTful iOS 客户端库(例如RESTkit)连接到您的服务。

如果您没有任何具体要求,我会先调查 Core Data + iCloud 是否符合要求。这应该让您在最短的时间内启动并运行。

于 2013-05-27T19:47:29.737 回答
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 会阻塞用户界面,所以你可能不想使用它

于 2013-05-27T19:40:08.640 回答