Łączenie się z bazą danych MySQL z poziomu C++

Do tej pory aplikacje, które omawiałem przy okazji artykułów z C++ zapisywały swoje dane w pamięci RAM lub za pomocą zwykłych plików. W pierwszym przypadku oczywiście wszystko co „zapisaliśmy” w zmiennych bądź stałych po wyłączeniu programu po prostu traciliśmy. Korzystając z plików ten problem mogliśmy już ominąć.

Fot: simplu27, CC0 Public Domain.

Fot: simplu27, CC0 Public Domain.

Niestety nasz system rezerwacji miejsc w kinie, który został stworzony w ostatnich artykułach jest jednak zbyt wymagający do tego, żeby zapisywać wygenerowane za jego pośrednictwem dane w zwykłych plikach. Tutaj potrzebujemy czegoś znacznie lepszego i dodatkowo umożliwiającego dostęp do danych z kilku urządzeń. Dobrym pomysłem będzie więc skorzystanie z serwera bazodanowego wyposażonego na przykład w bazę MySQL. Przyjrzyjmy się więc, jak połączyć się z taką bazą.

Na początku musimy dołączyć odpowiednie pliki nagłówkowe, zarówno na Windowsie jak i OS X oraz Linuxie będzie to plik mysql.h (konfiguracja Xcode):

Po zaimportowaniu odpowiedniego pliku przechodzimy do stworzenia obiektu (zmiennej) typu MYSQL oraz jej inicjalizacji:

Kolejnym krokiem będzie nawiązanie połączenia z naszym serwerem bazodanowym. Jeśli nie dysponujecie takim możecie na potrzeby edukacyjne uruchomić go lokalnie, jak zresztą sam zrobiłem.

Z bazą MySQL łączymy się za pomocą funkcji mysql_real_connect(). Pamiętajcie żeby przygotować takie informacje jak adres serwera (w przypadku postawienia bazy na własnym komputerze czyli lokalnie jest to domyślnie – 127.0.0.1), nazwy użytkownika, hasła oraz nazwy utworzonej bazy danych (np. mysql – jest to baza tworzona domyślnie i zawiera informacje o waszej instalacji MySQL):

Ogólna składnia:

Połączenie z bazą danych zamykamy za pomocą instrukcji mysql_close():

Przykładowy program, łączący się z bazą danych:

, , , , ,

  • Johny Bravo

    A jak by wyglądał kod wyciągający jakieś dane z bazy danych i umieszczający je w zmiennych, jest mi to dość potrzebne, prosiłbym o dokładny przykład, bo to jest tak skomplikowana operacja (przynajmniej dla mnie, dopiero teraz pozbyłem się błędów i skompilowałem aplikację), że powstaje błąd na błędzie. Z góry dzięki, pozdrawiam.

  • szevaa

    Witam!

    Niestety nie mam biblioteki mysql używam VS2012 co powinienem zrobić ?