bonsoir à tous,
je suis en train de tout repassé en PDO, mais là je ne comprend pas trop comment m'en sortir
je demande à pdo via mon select de me donner en premier le nombre de résultat retourné et ensuite d'étudier ce résultat.
Mais au lieux de ça, il ne compte pas le nombre de résultat il me retourne bêtement le résultat ce qui me bloque dans mon script.
Je pense que je fais une erreur d'approche avec pdo....
car lors de mon echo en ligne 6 il me retourne ce que contient le résultat de la requéte sql.
pourriez vous m'aider.
Merci d'avance flo
$sql = "SELECT user_password FROM phpbb_users WHERE username='$login' ";
$req = $DBPDO1 ->query($sql);
echo $req->fetchColumn();
echo '</br>';
if ( $req->fetchColumn() > 0)
{
echo $req->fetchColumn();
echo '</br>';
while ($d=$req->fetch(PDO::FETCH_OBJ))
{
$hash = $d->id;
}
}
else
{
echo "mauvais identifiants 1";
}
essai ca:
$requete = $pdo->prepare('SELECT user_password FROM phpbb_users WHERE username= ? ');
$requete->execute(array($login));
$nombre de resultat = $requete->fetchColumn();
echo (($nombre de resultat>1)?"tu as :".$nombre de resultat." utilisateur(s) qui correspond(ent) à ta requête!":"pas de resultat!");
sinon vérifie en changeant ta requete par un simple " SELECT user_password FROM phpbb_users"
j'ai essayé cette methode mais j’obtiens 0
$req = $dbh->query($sql);
$result = $req->fetchAll();
echo '<p>Cette requête retourne '.count($result)." enregistrements.</p>\n";
avec ta requête il me donne le résultat de mon sélect mais pas la quantité. Par contre effectivement si je vire le where j'ai bien le nombre de réponse.
Tant pis je vais faire un count dans la requête sql et je lancerai une seconde requête aprés pour comparer.
A moin que tu connaisse une astuce, mais bon c'est pas trés grave.
Merci
j'ai pas mal avance mais maintenant c'est le fichier auth qui déraille
et voici l'erreur
Fatal error: Call to a member function query() on a non-object in /homepages/32/d412740872/htdocs/FFS2-2/tools/config/calendrier/auth.php on line 14
extract($_SESSION'Auth']);
$sql = "SELECT COUNT(*)from phpbb_users where username = '$login' ";
$req = $DBPDO1 ->query($sql);
depuis le départ quand j'ai ce genre de message, soit ma requéte sql est fausse, soit mes variables ne passent pas, mais là je pige pas car cette requéte est utilisé juste avant dans index.php
je remet les élément
auth.php qui lui ne fonctionne pas si appelé via un autre fichier
<?php
define('PROTECTIONINCLUDE', TRUE);
require_once ($_SERVER"DOCUMENT_ROOT"].'/config/bdall.php');
include_once("hash.php");
class Auth{
static function isLogged()
{
if(isset($_SESSION'Auth']) && isset($_SESSION'Auth']'login']) && isset($_SESSION'Auth']'pass']))
{
extract($_SESSION'Auth']);
$sql = "SELECT COUNT(*)from phpbb_users where username = '$login' ";
$req = $DBPDO1 ->query($sql);
if ( $req->fetchColumn()==1)
{
$sql = "SELECT user_password from phpbb_users where username = '$login' ";
$req = $DBPDO1 ->query($sql);
while ($d=$req->fetch(PDO::FETCH_OBJ))
{
$hash = $d-> user_password ;
}
if (phpbb_check_hash($pass, $hash))
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
}
}
?>
Bon j'ai trouvé le soucis, mais je n'ai pas de solution propre., quand je rentre dans ma class Auth ou ma static function isLogged() mon include db est détruit, bloquée ou..., j'en sais trop rien, tous ce que je sais c'est que si je remet le try catch de connection à pdo dans la static function, celà redemarre.
Quelqu'un peu me dire pourquoi?