<?php
/**
* Login Class
*/
class Login extends Model{
public function getLogIn($pseudo){
$database = Database::openConnection();
$query = "SELECT id, password ";
$query .= "FROM membres ";
$query .= "WHERE pseudo = :pseudo ";
$query .= "LIMIT 1 ";
$database->prepare($query);
$database->bindValue(':pseudo', $pseudo);
$database->execute();
$login = $database->fetchAssociative();
return $login;
}
public function getById(){
$database = Database::openConnection();
$query = "SELECT id,pseudo,email ";
$query .= "FROM membres ";
$query .= "WHERE id = :id ";
$query .= "LIMIT 1 ";
$database->prepare($query);
$database->bindValue(':id', Session::getUserId());
$database->execute();
$login = $database->fetchAssociative();
return $login;
}
public function logOut($userId){
Session::remove();
Cookie::remove($userId);
}
}
Voilà le code en question. Je pense utiliser ce code pour gérer le "login" de mon blog. J'ai élaborer ce code selon les indications trouvées dans la documentation de PHP. Je pense avoir compris dans les grandes lignes de quoi il retourne.
Toutefois, ces lignes de code demeurent encore assez obscures.
Quelqu'un pourrait-il m'aider à y voir plus clair ?
Par exemple, je comprends mal la différence entre fetch et fetchAssociative.
Je remercie d'avance toutes les personnes qui pourront m'apporter leur aide.
Un bonjour pour commencer serait apprécier on est humain pas des boot ;).
C'est un code assez basique.
Une classe qui hérite d'une autre classe.
Il n'y a que des requêtes sql.
fetch sa va créer un tableau numérote ( [0] = > "Hello world" ) alors que fetchAssociative ( plutot fetch_assoc() ou PDO::FETCH_ASSOC ) c'est pour un tableau associatif ( ['pseudo'] => "Hello World" ).
Pour finir les double double point " :: " c'est pour appeler directement une classe et non un objet. Dons ton code ça fait appel a la methode remove de la classe Session et remove de la classe Cookie par contre cette fois-ci elle envoie en paramètre la valeur de $userId.
Quant à ta deuxième question, je ne sais pas dire si
$query .= "LIMIT 1 ";
est une mauvaise pratique, mais c'est en tout cas ici inutile car si id est bien un identifiant unique tu ne risques pas d'avoir plus d'un résultat comme réponse à ta requête.
Par contre tout ses concaténations au niveau de $query je trouve ça inutile dans ce code. pour LIMIT 1 inutile aussi vu que un id dois être unique donc une seule entrée est à récupérer. A moins que l'id ne soit pas en auto incrément dans la BDD et du coup plusieurs doublons seront présent chose à déconseiller.
Pour les marqueurs il y on a 2 sorte : paramètres nommés => " :id " et marqueurs => " ? " .
Grâce à toutes ces informations, je comprends beaucoup mieux comment tout cela fonctionne.
Merci pour votre aide.
Expliquez-moi ces lignes de code
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Site les mathématiques amusantes pour vous détendre