if ($stmt = $this->dbHandle->prepare("SELECT id, login, salt, level FROM members WHERE login = ? AND (password = ? AND salt = ?)")) {
$we = '1 OR 1=1';
$stmt->bind_param("sss", $user, $we, $we);
$stmt->execute();
$stmt->bind_result($id, $login, $salt, $level);
echo $id;
}
Dlaczego wyświetla mi 0 ? Innych danych które powinny być w wyniku też nie mam co robię źle?
Fragment:
$we = '1 OR 1=1';
podany jest ze względu na to że za pierwszym razem chce pobrać jedynie dane(haslo jest generowane na podstawie soli indywidualnej i stałej i dopiero za drugim razem (kolejny bind_param) wpisywane są poprawne dane do logowania i wtedy gdy rekordów spełniających warunki jest 1 osoba jest logowana:
$stmt->bind_param("sss", $user, $pass, $salt);
$stmt->execute();
$stmt->bind_result($id, $login, $salt, $level);
$stmt->store_result();
if($stmt->num_rows == 1){
$row = $stmt->fetch();
//tworzenie sesji $id, $login, $level
}
- nie wiedziałem jak to inaczej rozwiązać tak żeby nie wysyłać 2 podobnych zapytań