trochę mi zajęło przegrzebanie hdd na serwerze, ale znalazłem coś takiego:
main.cppKod
#include <iostream>
#include <mysql/mysql.h>
#include "db_data.h"
// To compile execute this code
// g++ program_01.cpp -lmysqlclient -o program_01
int main() {
// polaczenie
MYSQL *conn_ptr;
// wynik zapyania
MYSQL_RES *query_result;
// wiersz wyniku
MYSQL_ROW row;
// inicjalizacja i czy udalo sie zainicjalizowac
conn_ptr = mysql_init(NULL);
if (!conn_ptr) {
std::cout << "mysql init failed\n";
exit(1);
}
// nawiazanie polaczenia
conn_ptr = mysql_real_connect(conn_ptr,
_MYSQL_CONN_CFG_HOST_,
_MYSQL_CONN_CFG_USER_,
_MYSQL_CONN_CFG_PASS_,
_MYSQL_CONN_CFG_NAME_,
0,
NULL,
0);
// czy mamy polaczenia
if (conn_ptr) {
//std::cout << "connection success\n";
// zapytanie i zapisanie wyniku
mysql_query(conn_ptr, "SELECT * FROM test");
query_result = mysql_store_result(conn_ptr);
printf("id | name\n");
// petla po wynikach
while( (row = mysql_fetch_row(query_result)) ) {
printf(" %s | %s\n", row[0], row[1]);
}
// zwalniamy wyniki
mysql_free_result (query_result);
} else {
//nie mamy polaczenia, wyswietl blad
std::cout << "connection failed\n";
std::cout << mysql_error(conn_ptr);
exit(1);
}
// wszystko bylo ok, zamknij polaczenie
mysql_close(conn_ptr);
return 0;
}
plik
db_data.hKod
#ifndef _MYSQL_DATA_CONFIG_
#define _MYSQL_DATA_CONFIG_
#define _MYSQL_CONN_CFG_HOST_ "localhost"
#define _MYSQL_CONN_CFG_USER_ "user"
#define _MYSQL_CONN_CFG_PASS_ "pass"
#define _MYSQL_CONN_CFG_NAME_ "db_name"
#endif
plik
MakefileKod
CC=g++
CFLAGS=-c -Wall
LDFLAGS=-lmysqlclient
SOURCES=main.cpp
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=program_01
all: $(SOURCES) $(EXECUTABLE)
$(EXECUTABLE): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) -o $@
.cpp.o:
$(CC) $(CFLAGS) $< -o $@
clean:
rm -rf *.o $(EXECUTABLE)
no i bardzo przydatny link:
http://dev.mysql.com/doc/refman/5.0/en/c-a...n-overview.html