PDO - problem z pobieraniem danych przy użyciu WHERE

0

Mam kod który powinien pobrać z bazy danych poziom uprawnień użytkownika. Kod wygląda tak:

function db_connect() {
	global $db_log_sys;
	$db_host = 'localhost';
	$db_port = '3306';
	$db_name = 'test';
	$db_pass = 'haslo';
	$db_user = 'root';

	try {
			$db_log_sys = new PDO('mysql:host=' . $db_host . ';port=' . $db_port . ';dbname=' . $db_name, $db_user, $db_pass);
		} catch(PDOException $e) {
			die('Błąd połączenia z bazą');
		}
}

db_connect();

$dane = $db_log_sys -> query('SELECT * FROM users LIMIT 1');
	
foreach($dane as $row) { //#linia 21
	echo($row['lvl']);	
}

$dane -> closeCursor(); //#linia 25

Z góry mówię, że cały post jest edytowany. Wcześniej myślałem, że to składnia php jest problemem i brak klas ale okazało się, że powyższy kod działa normalnie. Problem pojawia się znowu gdy próbuję użyć WHERE login=Pino. Pojawiają się wtedy 2 błędy ze strony serwera:
Warning: Invalid argument supplied for foreach() in D:\www\test\login.php on line 21
Fatal error: Call to a member function closeCursor() on a non-object in D:\www\test\login.php on line 25

Dziękuję za wszelką pomoc

0

WHERE login = 'Pino' albo WHERE login = "Pino" - nie mam pojęcia jak się w MySQLu tekst podaje
a teraz podchwytliwe pytanie - masz w tabeli kolumnę, która się nazywa Pino?

0

Mam w tabeli kolumnę o nazwie login w której jest wartość Pino

0

Sprawdź w jakiejś konsoli sql czy zapytanie się w ogóle wykonuje. Z tego co piszesz wygląda, że $dane jest puste.

0
Pino napisał(a):

Mam w tabeli kolumnę o nazwie login w której jest wartość Pino
OK, tyle że w zapytaniu nie zrobiłeś WHERE kolumna = wartość tylko WHERE kolumna = kolumna - rozumiesz już?

0

Dzięki bardzo abrakadaber. Wiedziałem, że to będzie jakaś mała pierdoła. Dopiero jak napisałeś z tymi cudzysłowami i apostrofami posta to z pomysłu kolegi wyżej sprawdziłem sobie w konsoli jak ma działać i pięknie śmiga.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.