• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Mysql C++ - problem

VPS Starter Arubacloud
0 głosów
244 wizyt
pytanie zadane 9 kwietnia 2017 w C i C++ przez niezalogowany

Witam, zainstalowałem jakieś pakiety mysql do c++, jakie znalazłem w internecie:

apt-get install libmysqlcppconn-dev

Teraz, tylko jak to dodać do IDE? I Jakiego użyć? Bo ja używam Geany, ale chyba tam się nie da.

1 odpowiedź

+1 głos
odpowiedź 9 kwietnia 2017 przez adrian17 Ekspert (344,100 p.)
W Geany: tutaj: https://i.stack.imgur.com/SPpDF.png do `build` dodaj `-lmysqlcppconn`. To wszystko.

Ogólnie na linuxie, jeśli chodzi o IDE, pełniejszym rozwiązaniem byłby Qt Creator lub C::B.
komentarz 13 kwietnia 2017 przez niezalogowany
Jeśli chodzi o id to zmieniłem na typ text w obu tabelach, ale znowu ten sam błąd. Jeśli chodzi o SQL Injection, to jeśli tą aplikację będę używać tylko u siebie, i nikt jej nie będzie włączał i nic, a w PHP teksty przejdą przez addslashes to może coś się stać?
komentarz 13 kwietnia 2017 przez adrian17 Ekspert (344,100 p.)

na typ text w obu tabelach

...co? Poważnie zmieniłeś typ `id` na TEXT w bazie danych, zamiast po prostu użyć funkcji getInt() ?

Program ma być być pisany pod model bazy danych, a nie na odwrót.

Jak to poprawisz, to wrzuć zarówno model, jak i kod, na https://gist.github.com/ i wtedy zobaczę.

komentarz 13 kwietnia 2017 przez niezalogowany

Ok, pozmieniałem, ale wciąż ten błąd. Tutaj masz kod: LINK

komentarz 13 kwietnia 2017 przez adrian17 Ekspert (344,100 p.)
res->getString("id") ===> getInt() i konwersja na stringa.
komentarz 15 kwietnia 2017 przez niezalogowany

Podmieniłem, tylko niewiem czy w dobry sposób:

    sql::mysql::MySQL_Driver *driver;
	sql::Connection *con;
		sql::Statement *stmt;
	sql::ResultSet  *res;
	sql::ResultSet  *resa;

	driver = sql::mysql::get_mysql_driver_instance();
	con = driver->connect("tcp://127.0.0.1:3306", "cpp", "cpp");

	stmt = con->createStatement();
	stmt->execute("USE " EXAMPLE_DB);
	while(1==1)
	{
	res = stmt->executeQuery("SELECT * FROM kolejka");
	while (res->next()) {
	//cout << "id = '" << res->getString("id") << "' , ";
	//cout << "zadanie = '" << res->getString("zadanie") << "'" << endl;
	ostringstream sa;
	sa << "SELECT * FROM wys WHERE id=" << res->getInt("id");
	resa = stmt->executeQuery(sa.str());
	string kod = resa->getString("kod");
	cout<<kod<<endl;
	ostringstream ss;
	ss << "DELETE FROM kolejka WHERE id=" << res->getInt("id");
	stmt->execute(ss.str());
}

Wyskakuje mi błąd:

# ERR: MySQL_ResultSet::getString: can't fetch because not on result set (MySQL error code: 0, SQLState:  )

Chyba coś źle zaimplementowałem. Jak zrobiłem sobie przykładowy kod w SQL, który mógłby powstać to mam:

SELECT * FROM wys WHERE id=1

To jak wkleiłem do pola SQL w phpmyadmin to poszło, i wyskoczył mi rekord, bo taki jest.

Podobne pytania

0 głosów
0 odpowiedzi 169 wizyt
pytanie zadane 10 kwietnia 2020 w SQL, bazy danych przez sCoreee Nowicjusz (120 p.)
0 głosów
1 odpowiedź 323 wizyt
pytanie zadane 25 lutego 2017 w PHP przez Gabriel Janczak Użytkownik (710 p.)
0 głosów
2 odpowiedzi 721 wizyt
pytanie zadane 5 lipca 2016 w C i C++ przez Weenter Użytkownik (830 p.)

92,454 zapytań

141,262 odpowiedzi

319,089 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...