Voilà il se peut que j'ai oublié quelque chose d'évident mais l’évidence me bloque depuis maintenant plusieurs heures.
J'ai une méthode de création de membre qui a le rôle d'ajouter dans ma base des membres.
Dans cette méthode et pour protéger ma variable j'utilise la méthode quote(), comme ceci:
$prepare->execute(array(
':login' => $db->getConnection()->quote(parent::getLogin()),
[...]));
Je tiens à préciser que cette méthode fonctionne et m'insère les données.J'ai une autre méthode qui quant à elle, vérifie l'existence d'un membre.
/**
*
* @param string $login
* @return bool
*/
public static function isMember($login){
try{
$db = new Connection();
$member = $db->getConnection()->query("SELECT COUNT(*) as nb FROM users where login = ".$db->getConnection()->quote($login)."");
$nb = $member->fetchAll();
var_dump($nb);
return ($nb[0][0] > 0) ? true : false;
}
catch (Exception $e){
echo 'Erreur isMember' . $e->getMessage();
}
}
Je pensais avoir un problème avec cette méthode puisque bien que l'utilisateur 'damien' soit créé elle me retournait 0.Mais je me suis rendu compte que même en exécutant dans le prompt la requête, elle me retourne 0.
Alors que le login existe.
Si j'effectue un
select * from users; voici une partie de ce que j'obtiens
iduser login
45 'damien'
Si j'effectue un select COUNT(*) as nb from users where login = 'damien';
J'obtiens: 0Voilà, si vous avez des idées je vous en remercie par avance.
Bonne soirée.
Damien.