2010-11-27 7 views
1

웹 서버에 MySQL 데이터베이스가 있고 iPhone 응용 프로그램에서 데이터를 읽어야합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 데이터는 웹 서버에서 액세스해야하며 수시로 업데이트됩니다. NSURL 클래스가가는 길입니까?mySQL 데이터베이스를 iPhone 응용 프로그램

도움을 주셔서 감사합니다.

+0

가능한 복제본 [iPhone에서 MySQL 데이터베이스에 연결하는 방법] (http://stackoverflow.com/questions/468618/how-to-connect-to-a-mysql-database-from-an- iphone) –

+0

[어떻게 액세스 mysql 원격 데이터베이스] (http://stackoverflow.com/questions/3244807/how-access-mysql-remote-database), [iphone에서 MySQL 데이터베이스에 액세스] (http : // stackoverflow. (원격 MySQL에서 iPhone으로 레코드를 가져 오는 가장 빠르고 효율적인 방법) (http://stackoverflow.com/questions/2339836/fastest-and-company/questions/2896321/access- mysql-database-from-iphone) 가장 효율적인 방법으로 원격 가져 오기 - 원격 - mysql에서 아이폰으로) –

답변

5

서버 측에서 PHP, Ruby on Rails 등의 간단한 웹 기술을 제안합니다.이 기술은 JSON을 보내는 기본 RESTful-ish 웹 서비스의 역할을합니다. 이것은 간단하고 많은 프로그래밍 전문 지식을 필요로하지 않습니다. PHP를 통해 JSON을 출력하는 데는 한 줄의 코드가 필요하며 데이터를 가져 오기위한 요청에는 소수의 코드 만 필요합니다.

ASIHTTPRequest은 업데이트를위한 비동기 요청을 놀랍도록 쉽게 만들 수 있으며 SBJSON은 수신 된 데이터를 NSDictionary의 NSArray로 매우 쉽게 변환 할 수있게 해줍니다.

모든 작업을 수행하는 열쇠는 새로운 레코드를 다운로드하고 iPhone이 모든 업데이트 된 레코드를 수신하는지 확인하기 위해 데이터 수정 날짜를 자세히 추적해야한다는 것입니다.

예를 들어 MYSQL 서버의 각 레코드에는 필드를 최신으로 유지하기 위해 CURRENT_TIMESTAMP 업데이트 업데이트 명령에 을 사용하는 LastModified 필드가있을 수 있습니다. iPhone에서는이 날짜도 저장합니다. 장치가 요청하고 업데이트하면 먼저 테이블의 최신 LastModified 날짜를 찾고 업데이트하는 날짜를 서버로 보냅니다. 서버 코드는 LastModified가 보낸 날짜보다 큰 모든 레코드를 다시 보냅니다.

각 레코드의 서버 측에 DateCreated 필드를 추가하면 더욱 간소화 할 수 있습니다. 이를 통해 서버는 두 세트의 데이터를 반환 할 수 있습니다. 하나는 DateCreated 필드가 보내진 LastModified 날짜보다 큽니다.이 값은 iPhone 데이터베이스에 삽입됩니다. 그리고 LastModified 서버 날짜가 보낸 날짜보다 늦은 하나의 세트 DateCreated 필드가 전송 된 날짜보다 작거나 같습니다 - 업데이트가 필요한 데이터 행입니다.

방금이 작업을 수행하는 앱을 작성 했으므로 문제는 내 마음에 새롭습니다. 희망이 도움이됩니다.

+0

답변 해 주셔서 감사합니다. 그것은 많은 도움이되었습니다. – hanumanDev

1

데이터베이스에 직접 연결할 수 없습니다. JSON 또는 XML 형식으로 db의 필요한 영역을 덤프하는 서버의 페이지가 있어야합니다. TouchJSON을보아야합니다.

+0

답장을 보내 주셔서 감사합니다. TouchJSON을 살펴 보겠습니다. – hanumanDev

관련 문제