2010-11-27 5 views
1

J'ai une base de données MySQL sur un serveur Web et j'ai besoin de lire les données d'une application iPhone. Quelle est la meilleure façon de procéder? Les données doivent être accessibles depuis le serveur Web et seront mises à jour de temps en temps. La classe NSURL est-elle la solution?Base de données mySQL vers l'application iPhone

merci pour toute aide.

+0

double possible de [Comment se connecter à une base de données MySQL à partir d'un iPhone?] (Http://stackoverflow.com/questions/468618/how-to-connect-to-a-mysql-database-from-an- iphone) –

+0

Voir aussi [comment la base de données à distance mysql d'accès] (http://stackoverflow.com/questions/3244807/how-access-mysql-remote-database), [accéder à la base de données MySQL à partir iphone] (http: // stackoverflow. com/questions/2896321/accès-mysql-database-from-iphone), [moyen le plus rapide et le plus efficace pour aller chercher un enregistrement de Remote MySQL à l'iPhone] (http://stackoverflow.com/questions/2339836/fastest-and- la manière la plus efficace d'aller chercher un enregistrement de la télécommande à mysql vers l'iphone) –

Répondre

5

Je propose une technologie simple web sur le côté serveur - PHP, Ruby on Rails, etc. - qui agit en tant que service Web RESTful-ish de base qui envoie JSON. Ceci est simple et ne nécessite pas beaucoup d'expertise en programmation - la sortie de JSON via PHP nécessite une seule ligne de code, et la requête pour récupérer les données ne nécessite qu'une poignée, par exemple. Du côté de l'iPhone, ASIHTTPRequest rend incroyablement facile la création de requêtes asynchrones pour les mises à jour et SBJSON rend incroyablement facile de transformer les données reçues en un NSArray de NSDictionaries, juste quelques lignes de code.

La clé pour faire tout le travail fait certain que vous continuez à suivre de près les dates de modification des données, à la fois pour assurer que les nouveaux enregistrements sont téléchargés et pour rendre certains l'iPhone reçoit chaque jour un.

Par exemple, chaque enregistrement sur le serveur MYSQL peut avoir un champ LastModified, qui utilise la commande lors de la mise à jour CURRENT_TIMESTAMP pour maintenir le champ à jour. Sur l'iPhone, vous stockez également ces dates. Lorsque le périphérique demande et met à jour, il recherche d'abord la dernière date LastModified pour la table qu'il met à jour et l'envoie au serveur. Le code serveur renvoie tous les enregistrements où LastModified est supérieur à la date d'envoi.

Cela peut être rationalisé davantage en ayant un champ DateCreated sur le côté serveur pour chaque enregistrement. Cela permet au serveur de renvoyer deux ensembles de données, l'un dans lequel le champ DateCreated est supérieur à la date LastModified (il s'agit d'insertions dans la base de données iPhone) et l'autre dans lequel la date LastModified server est postérieure à celle envoyée mais le champ DateCreated est inférieur ou égal à la date d'envoi - il s'agit des lignes de données à mettre à jour.

Je viens d'écrire une application qui fait cela, de sorte que les questions sont frais dans mon esprit. J'espère que cela t'aides.

+0

merci pour votre réponse. ça m'a beaucoup aidé. – hanumanDev

1

Vous ne pouvez pas vous connecter à la base de données directement. Vous aurez besoin d'une page sur votre serveur qui sauve les zones nécessaires de votre base de données dans un format JSON ou XML. Vous devriez regarder TouchJSON.

+0

merci pour votre réponse. Je vais regarder dans TouchJSON. – hanumanDev

Questions connexes