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

Nie wiem o co chodzi w if'ie

Cloud VPS
0 głosów
1,081 wizyt
pytanie zadane 31 grudnia 2015 w PHP przez Filip2248 Dyskutant (8,840 p.)

Witam.

Mam problem ze zrozumieniem instrukcji warunkowej z 2 odc. kursu php pana Zelenta (32:14) :

$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);

if ($polaczenie->connect_errno!=0)
{
   echo "Error: ".$polaczenie->connect_errno;
}
else
{
    echo "It works!";

    $polaczenie->close();
}

Jest tam powiedziane, że "atrybut connect_errno! przyjmie wartość zero jeżeli ostatnio dokonana próba połączenia się powiedzie". Nie rozumiem tego, bo na mój chłopski rozum to jeżeli connect_errno! przyjmie wartość zero to będzie równy zeru i w if'ie powinno być opisane to co się ma dziać wtedy gdy uda się połączyć z bazą a dopiero w else'ie wypisanie błędu.

Bardzo proszę o wytłumaczenie tej linijki.

3 odpowiedzi

+1 głos
odpowiedź 31 grudnia 2015 przez Arkadiusz Waluk Ekspert (290,310 p.)
Tak napisałeś swój tok myślenia, że szczerze mówiąc to nic z niego nie zrozumiałem. Ale wytłumacze jak jest.

Jeśli wystąpi jakiś błąd podczas łączenia z bazą wtedy connect_errno przyjmie jakąś wartość liczbową inną niż 0. Gdy błędu nie ma przyjmuje 0.

Warunek jest więc: gdy $polaczenie->connect_errno będzie inne niż 0 (czyli jeśli wystąpi błąd połączenia) wtedy wyświetl error i jego numer. Jeśli błąd nie wystąpi (connect_errno jest równy 0) to pokaż że to działa i zamknij połączenie.

Tyle. Mam nadzieję, że już rozumiesz.
komentarz 31 grudnia 2015 przez Filip2248 Dyskutant (8,840 p.)
Dziękuję bardzo :)
0 głosów
odpowiedź 1 stycznia 2016 przez 0rb_12 Bywalec (2,440 p.)

Chyba wiem jak powstał Twój problem.


Myślisz, że atrybut connect_errno! przybiera jakaś wartość i sprawdza czy jest = 0

 

Ale Wykrzyknik nie dotyczy wyrażenia connect_errno, dotyczy on znaku równości tworząc operator,

więc na prawdę to ten atrybut wygląda tak connect_errno i sprzawdza czy jest != (różne) od 0
 

0 głosów
odpowiedź 1 stycznia 2016 przez Radekoslaw123 Gaduła (3,080 p.)
Jak się łączy serwer z bazą danych, to mogą wyjść jakieś błędy, connect_errno to jest komenda która wyciąga błąd jeśli on jest z połączenie czyli $polaczenie->connect_errno, a jeśli wynosi 0 to znaczy że nie było żadnych błędów więc działa :D

Podobne pytania

–1 głos
1 odpowiedź 210 wizyt
0 głosów
1 odpowiedź 232 wizyt
pytanie zadane 4 stycznia 2016 w C i C++ przez White Początkujący (360 p.)
0 głosów
1 odpowiedź 515 wizyt
pytanie zadane 22 stycznia 2016 w C i C++ przez konrad99 Gaduła (4,090 p.)

93,483 zapytań

142,417 odpowiedzi

322,763 komentarzy

62,895 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

Kursy INF.02 i INF.03
...