Pisze program w C, który zamieszcza w bazie MySQL odpowiednie dane. Potrzebuje sprawdzić czy połączenie z baza danych jest aktywne, chciałem użyć do tego funkcji
Nie rozumiem dlaczego jak w trakcie działania programu wypnę kabel sieciowy, to funkcja zwróci wartość 0 (co oznacza że połączenie jest aktywne). Wie ktoś jak sprawdzić czy połączenie jest aktywne?
Ostatnio zmieniony 06 maja 2012, 18:25 przez marcin0x02, łącznie zmieniany 2 razy.
Hmmm... w takim razie mysql_ping absolutnie nie powinien zwrócić wartości 0. Mógłbyś wrzucić tu kawałek kodu programu, jak to sprawdzasz?
Innym sposobem prostego sprawdzenia połączenia jest wykonanie query "select 1" które powinno zwrócić "1", jeżeli z serwerem wszystko OK, a błąd w przeciwnym wypadku. Jeżeli po rozłączeniu również mysql_query zwróci Ci 0, to znaczy że to chyba nie jest ten kabel
a ja tak z ciekawości: dlaczego nie spróbujesz po prostu query, i dopiero jak nie wyjdzie zastanowić się dlaczego?
poza tym popraw tytuł wątku bo wynalazłeś Całkowicie Nowe Słowo (TM)
marcin0x02, ale dlaczego zamieniłeś wartości w statusach?
Po poprawnym wykonaniu mysql_ping powinno zwracać 0, czyli ustawiać statusMySQL na 1
Po poprawnym wykonaniu mysql_query również zwraca wartość 0, ale wtedy w Twoim kodzie ustawi statusMySQL na 0
Pokręciłeś coś.
niestety:
niedostateczny z programowania współbieżnego
niedostateczny z przygotowania do tematu (ze szczególnym uwzględnieniem niechęci do poczytania sobie dokumentacji do libmysqlclient)
odpowiedź prawidłowa jest 3, ponieważ to trzy, samołóż wywiorstne, gręzacz tęci wzdyżmy.
czyli co, połączenie nie wyszło więc printujesz informację i dalej radośnie korzystasz z nieistniejącego połączenia?
następny niedostateczny ze znajomości C.
chłopie, weź se poczytaj o podstawach, a potem zawracaj d... całemu światu.
Ok.
Może zatem podejdę od innej strony: **nie ma takiej możliwości**, żeby poprawnie wykonało się query na bazie danych, jeżeli fizycznie likwidujesz z nią połączenie. Tak więc kod