Signaler

C'est moi qui devient folle ? [Résolu]

Posez votre question ephelya 156Messages postés mercredi 28 septembre 2011Date d'inscription 13 juillet 2017 Dernière intervention - Dernière réponse le 12 juil. 2017 à 19:23 par jordane45
Bonjour à tous,

Voici ma requête SQL toute simple :
		$ip = $_SERVER["REMOTE_ADDR"];
		$now = time();
		try{
		$db = new \PDO('mysql:host='.DB_HOST.'; dbname='.DB_NAME.'; charset=utf8', DB_USER, DB_PASSWORD);
		 $db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
		 $db->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_OBJ);
		} catch(PDOException $e) {
		    die('Erreur : ' . $e->getMessage());
		}

		$query = "SELECT iduser FROM  temp_connect WHERE ip=:ip AND :now < (datemax + 3600)"; 
		$datas = array(':ip'=>$ip, ':now' => $now);

		try{
		  $requete = $db -> prepare($query) ;
		  $requete->execute($datas) ; print_r($requete -> fetchAll());
		  $result =$requete -> fetchAll(); print_r($result); 
			if (!empty($result)) 
			{
		              $user = \Models\Membres::get_user($result[0] -> iduser);
			      return($user);			
			}	
			else { return false; }
		}catch(Exception $e){
		   echo " Erreur ! ".$e->getMessage();
		   echo " Les datas : " ;
		}


Sur l'écran, voilà ce que j'obtiens :
Array ( [0] => stdClass Object ( [iduser] => 431 ) ) Array ( ) 

Je devrais avoir deux fois le même résultat, alors pourquoi print_r($result) retourne un tableau vide ???
Ça me rend dingue, alors si quelqu'un a une piste...
Merci d'avance !
Afficher la suite 
Utile
+0
plus moins
Bonjour
Car tu as deja fait un premier fetch... le second est donc naturellement vide
ephelya 156Messages postés mercredi 28 septembre 2011Date d'inscription 13 juillet 2017 Dernière intervention - 12 juil. 2017 à 19:07
Ahhhhh... :-) -) :-)
Je croyais que fetch servait simplement à indiquer le contenu, je ne savais pas qu'on ne pouvait pas l'utiliser deux fois de suite...
Merci beaucoup ! :-)
Répondre
jordane45 17897Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 19 juillet 2017 Dernière intervention - 12 juil. 2017 à 19:23
Ca lit le jeu d'enregistrements de ta requette.
Le fetchall deplace le curseur jusqu'au dernier (pour tout lire)
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !