Używam już programu sqlite3 w aplikacji na telefon iPhone, ale jak mogę wysłać zapytanie do zewnętrznej bazy danych SQL znajdującej się w mojej witrynie?Jak wysłać zapytanie do zewnętrznej bazy danych SQL - aplikacja na telefon iPhone
Odpowiedz
Twoja aplikacja nie wykonuje faktycznego zapytania. Właściwym sposobem na to jest skonfigurowanie interfejsu API dla witryny, aby witryna przeprowadzała kwerendy i zwracała odpowiednie dane do aplikacji.
Twoje API zazwyczaj składa się z wielu punktów końcowych, które zwracają dane sformatowane dla Twojej aplikacji. Na przykład możesz utworzyć stronę PHP lub Python, która zapyta bazę danych o wszystkie posty dla danego użytkownika i zwróci je w tablicy z kodowaniem JSON lub XML. (Format danych zależy wyłącznie od Ciebie. Istnieją ramy do analizowania obu formatów dostępnych dla systemu iOS.)
Załóżmy na przykład, że na serwerze znajduje się strona PHP zwracająca bieżący dzień tygodnia. Twój PHP będzie wyglądać mniej więcej tak:
<?php
echo date("l");
?>
Wyobraźmy sobie, że masz zapisane to jako http://example.com/dayoftheweek.php
Polecam pomocą ASIHTTPRequest ramy wykonywania żądania HTTP z poziomu aplikacji. To powiedziawszy, przejdźmy dalej i skonfigurujmy połączenie z twoją stroną PHP. Zakładając, że ASIHTTPRequest wszystko skonfigurować w projekcie, oto co może wyglądać jak prośba:
NSURL *url = [NSURL URLWithString:@"http://example.com/dayoftheweek.php"]
ASIHTTPRequest *request = [[ASIHTTPRequest alloc] initWithURL:url];
[request setDelegate:self];
Teraz trzeba zaimplementować metody ASIHTTPRequest delegowana do analizowania zwracanych danych. Metoda obsługi zakończonego żądania jest wyświetlana tutaj:
- (void)requestFinished:(ASIHTTPRequest *)request{
//Here you would store the returned data and/or parse it
}
Aby zaimplementować interfejs API, strony PHP byłyby bardziej złożone. Zbudowałbyś bardziej złożoną prośbę, przekazując zmienne i takie, a strona PHP działałaby jak zwykła usługa sieciowa, zwracając żądane dane.
Myślę, że masz na myśli MySQL. Zwykle dostęp do baz danych MySQL jest zabroniony z zewnątrz i nie bez powodu. Zamiast tego możesz napisać interfejs API, który uzyskuje dostęp do bazy danych. Twoja aplikacja na iPhone'a będzie komunikować się z tym interfejsem API w celu wstawiania i pobierania danych.
A więc jaki rodzaj interfejsu API? Czy zrobiłbym coś w rodzaju skryptów php? – StanLe
Tak. Najprostszą rzeczą, jaką możesz zrobić, to skrypt PHP, który zwraca dane w formacie JSON lub XML w oparciu o parametry, które do niego przesyłasz. Następnie analizuj dane z aplikacji przy użyciu ASIHTTPRequest plus jednej z wielu bibliotek JSON i XML w pobliżu (polecam YAJL dla JSON i GData dla XML) i zrób coś z tym. – pt2ph8
Możesz korzystać z usług internetowych. Powiedzmy, że chcesz uzyskać ID dla jakiegoś użytkownika z bazy danych serwera. Aby to osiągnąć, może istnieć usługa internetowa API - (NSNumber *) IDForUserWithName: (NSString *) nazwa użytkownika. To połączenie jest przekazywane do serwera, który wewnętrznie pobiera identyfikator dla nazwy użytkownika przekazanej z bazy danych. – Subhash
@StanLe: Nie można bezpośrednio używać aplikacji SQL Server lub mySQL w macierzystej aplikacji. Jednak możesz komunikować swoją aplikację z zewnętrznymi bazami danych SQL w następujący sposób.
- Utwórz XML API za pomocą PHP, C# lub dowolnego narzędzia, które zapewnia plik XML w wyniku.
- Użyj parsera (NSXMLParser) w kodzie xcode, który może odczytać znaczniki strony XML.
Oto example
Oto sample Code
Innym bardzo Simple Example
jeśli nadal każdy zamieszanie proszę odpisać.
Jestem trochę obeznany z PHP i wcześniej wykonałem zapytania SQL w PHP. Jedyne, co mnie martwi to to, że wydrukowałem wyniki zapytania do konsoli (na ekranie komputera). Jak zawinąć wyniki i przeczytać je w Objective-C? – StanLe
czy możesz podać mi jakieś szczegóły, takie jak baza danych i platforma, z których korzystasz, i jakie wyniki chcesz zobaczyć w natywnej aplikacji? – Xorsat
Doskonałe linki. Jedyne, co utknąłem, to jak uruchomić plik php na moim serwerze, taki jak www.mysite.com/myfile.php z obiektu c, i otrzymać wyniki z powrotem. Chcę móc uruchomić plik php z konkretnym wejściem (takim jak nazwa), który będzie używany do wysyłania zapytań do bazy danych. Następnie PHP zwróci wiersz z mojej bazy danych MySQL. Wtedy mój Cel-C dostanie ten wynik. – StanLe
Podejście używane do komunikacji z dowolną zewnętrzną bazą danych odbywa się za pośrednictwem usługi Webservices (którą nazywamy tutaj API). wysyłasz żądanie do serwera, który zwykle jest wywołaniem funkcji na serwerze, a serwer odpowiada na żądane dane.
Możesz przejść przez This. Tak daleko, jak PHP i inne stosowne pojęcia są związane, będziesz musiał podjąć pewne wysiłki i google trochę kodu. This może również być przydatny. Zwykle serwisy internetowe napisane dla iPhone'a korzystają z XML/JSON dla iPhone'a. Parser JSON/XML jest dostępny
- 1. Zapytanie synchroniczne do bazy danych Web SQL
- 2. jak działa aplikacja DataMan na telefon iPhone w tle
- 3. Zapisywanie danych binarnych na telefon iPhone
- 4. Demo zdalna aplikacja na telefon iPhone do klienta
- 5. Telefon iPhone na iPhone'a
- 6. Zapytanie SQL dla schematu bazy danych
- 7. Parametry zdarzeń w analizach Flurry; Aplikacja na telefon iPhone
- 8. CodeIgniter granica zapytanie do bazy danych
- 9. Awaria aplikacji na telefon iPhone (tylko iOS4)
- 10. Jak powiązać aplikację na telefon iPhone z typem _every_?
- 11. Jak dołączyć czcionkę do aplikacji na telefon iPhone?
- 12. Zapytanie do bazy danych z fullcalendarem
- 13. Przechowywanie danych lokalnie na iPhone
- 14. ORMLite LazyForeignCollection: Jak wysłać zapytanie do kolekcji tylko raz?
- 15. Jak używać pętli SQL do wstawiania wierszy do bazy danych?
- 16. Dodaj datę do bazy danych kopii zapasowej bazy danych SQL
- 17. Zapytanie o dwie bazy danych za pomocą Oracle SQL Developer
- 18. Zapytanie Różne bazy danych - Ta sama tabela SQL Server 2012
- 19. Jak zapisać zapytanie SQL do tabeli?
- 20. implementacja bezprzewodowa aplikacji na telefon iPhone
- 21. jak działa zapytanie SQL?
- 22. Jak wysłać zapytanie do sklepu HDF za pomocą Pandy/Python
- 23. Jak przekazać zmienną daty zerowej do bazy danych SQL Server
- 24. Kroki, aby przesłać aplikację na telefon iPhone do AppStore
- 25. Jak zainstalować/użyć RegexKitLite dla aplikacji na telefon iPhone?
- 26. Zapytanie sql do konwertowania nvarchar na int
- 27. Wydajność kodu: zapytanie SQL Server a aplikacja internetowa C# .Net
- 28. Skrypt SQL do "kopiowania" bazy danych
- 29. Link do utworu/albumu iTunes z aplikacji na telefon iPhone
- 30. Kopiowanie danych do folderu Dane aplikacji na iPhone
, ale jaki typ żądań http? jak dokładnie mogę utworzyć interfejs API? czy to php? jaki byłby przykład tego sposobu? – StanLe
Nie sądzę, że naprawdę potrzebował duplikowanej odpowiedzi. – pt2ph8
@StanLe - zaktualizowałem podstawowy przykład. @ pt2ph8 - Ja też tak nie uważam, dlatego zaktualizowałem swoją odpowiedź. ;-) – Moshe