Cześć!
W lekcji 2 videokursu PHP pana Mirosława mam problem ze zrozumieniem pewnego zagadnienia. Chodzi o zmienną $rezultat pojawiającą się w okolicy 40-tej minuty nagrania. Pan Mirosław na początku nazywa ją zmienną, a później poprawia się na "obiekt" i to jest chyba właściwsze, bo potem wskazany jest po niej atrybut num_rows... No właśnie, i tu mam problem.
O ile z obiektem $połączenie rozumiem to tak, że jest on obiektem należącym (niejako) do klasy mysqli, która dzięki dołączonemu rozszerzeniu ma już wbudowane atrybuty (np. connect_error, connect_errno) i metody (np. query() ), no to z tej strony:
https://www.php.net/manual/en/book.mysqli.php
...wynika, że num_rows jest atrybutem nie klasy mysqli, a klasy mysqli_stmt, Tylko, że w tejże linii:
$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
stworzono obiekt $połączenie w klasie mysqli. A jak to się stało, że powstał obiekt $rezultat w klasie mysqli_stmt, krórej nigdzie nie ma w kodzie i jakim cudem ten obiekt został zadeklarowany w środku if'a (no bo nigdzie wcześniej w kodzie się nie pojawia):
if ($rezultat = @$polaczenie->query($sql))
Jak to się stało, że to:
$rezultat->num_rows;
...w ogóle tu zadziała jako atrybut klasy mysqli_stmt? :(