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

Trying to get property 'num_rows' i problemy z ifem.

0 głosów
280 wizyt
pytanie zadane 10 czerwca 2020 w PHP przez SCpl Użytkownik (590 p.)

Ostatnio zacząłem się uczyć PHP z poradników Mirosława Zelenta. Jednak napotkałem jeden problem i nie wiem jak go rozwiązać. Chodzi o odcinek 2, a dokładniej czas 48:40. Podejrzewam, że mam gdzieś literówkę lub coś w tym stylu, ale ja nigdzie błędu nie widzę. Pokazuje mi błąd "Trying to get property 'num_rows'", a kod wygląda następująco: 

<?php
	
	require_once "connect.php";
	("
    <?php
	
	$host = "localhost";
	$db_user = "root";
	$db_password = "";
	$db_date = "osadnicy";
	
   ?>
   ")
	
	$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
	
	if($polaczenie->connect_errno!=0)
	{
		echo "Error: ".$polaczenie->connect_errno;
	}
	else
	{
		$login = $_POST['login'];
		$haslo = $_POST['haslo'];
		
		$sql = "SELECT * FROM uzytkownicy WHERE BINARY user='$login' AND BINARY pass='$haslo'";
		
		$rezultat = @$polaczenie->query($sql);
		if($rezultat == false)
		{
			$ilu_userow = $rezultat->num_rows;
			if($ilu_userow==1)
			{
				$wiersz = $rezultat->fetch_assoc();
				$user = $wiersz['user'];
				$password = $wiersz['pass'];
				
				$rezultat->close();
				echo "$user";
			}
			else
			{
				
			}
		}
		
		$polaczenie->close();
	}
	
?>

Miałem również wcześniej problem z: 

if($rezultat = @$polaczenie->query($sql))

które zmieniłem na: 

$rezultat = @$polaczenie->query($sql);
if($rezultat == false)

I nie wiem, jak w inny sposób rozwiązać ten problem.

Proszę o pomoc w tych dwóch sprawach :D.

1 odpowiedź

0 głosów
odpowiedź 10 czerwca 2020 przez HaKIM Szeryf (87,590 p.)

https://www.php.net/manual/en/mysqli.query.php#refsect1-mysqli.query-returnvalues

Jesli polaczenie zwrocilo wartosc false, czyli rezultat negatywny, dlaczego spodziewasz sie, ze dalsze operacje sie powioda?

Sugeruje usunac malpe sprzed $polaczenie->query, nastepnie, jezeli pojawi sie blad inny od "Trying to get property 'num_rows'", postarac sie go zrozumiec i zastosowac odpowiednie poprawki. Oczywiscie, mozesz liczyc na pomoc forumwiczow, choc w pierwszej kolejnosci google.

Jezeli jednak blad nie pojawi sie, a rezultat niezmiennie bedzie reprezentowal "false", sugeruje sprobowac wyswietlic blad ponizasza instrukcja:

printf("Error: %s\n", $polaczenie->error);

wewnatrz if'a z 29 linijki i zastosowac sie do porady powzyej t.j. zrozum -> googluj -> zapytaj.

Sorry za brak ogonkow.

Podobne pytania

0 głosów
0 odpowiedzi 785 wizyt
pytanie zadane 19 października 2020 w PHP przez xbrylax Nowicjusz (120 p.)
0 głosów
1 odpowiedź 5,406 wizyt
pytanie zadane 18 stycznia 2016 w PHP przez gab123 Mądrala (5,230 p.)
0 głosów
0 odpowiedzi 355 wizyt
pytanie zadane 3 listopada 2018 w PHP przez Gucci Gaduła (4,580 p.)

93,777 zapytań

142,736 odpowiedzi

323,388 komentarzy

63,381 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...