IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Fatal error: Call to a member function rowCount() on a non-object


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2010
    Messages : 17
    Par défaut Fatal error: Call to a member function rowCount() on a non-object
    Bonjour,

    J'ai ma classe PDO mais quelques soucis à l'utilisation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <?php
    class Connexion extends PDO {
     
    	private $bdd, $moteur, $hote, $login, $mdp, $base;
     
    	public function __construct() {
    	$fichier = ''. docRoot() .'config/sql.ini';
    		if(file_exists($fichier)) {
    		$config = parse_ini_file($fichier, true);
     
    		$this->moteur = $config['SQL']['moteur'];
    		$this->hote   = $config['SQL']['hote'];
    		$this->login  = $config['SQL']['login'];
    		$this->mdp    = $config['SQL']['mdp'];
    		$this->base   = $config['SQL']['base'];
     
    			try {
    			$this->bdd = new PDO($this->moteur .':host='. $this->hote .';dbname='. $this->base, $this->login, $this->mdp);
    			$this->bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    			} catch(Exception $e) {
    			exit('Erreur : '. $e->getMessage());
     
    			}
    		}		
    	}
     
    	public function requete($requete) {
    	$this->bdd->quote($requete);
    	return $this->bdd->query($requete) or exit(print_r($this->bdd->errorInfo()));
    	}
     
    	public function fetch($resultat) {
    	return $resultat->fetchAll();
    	}
     
    	public function compteur($resultat) {
    		if(is_object($resultat)) {
    		echo 'ok';
    		} else {
    		echo 'pas ok';
    		}
    		var_dump($resultat);
    	return $resultat->rowCount();
    	}
     
    	public function close($resultat) {
    	return $resultat->closeCursor();
    	}	
    }
    ?>
    Mon script qui connecte l'utilisateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <?php
    session_start();
    include('../includes/fonctions.php');
    include('../config/config.php');
     
    $connexion = new Connexion();
    $login = $_POST['login'];
    $pass = $_POST['mdp_windows'];
     
    $requete = "SELECT id_pers, login, mdp_windows, cookie FROM personnes WHERE login = '". $login ."' AND mdp_windows = '". $pass ."';";
    // echo $requete;
    $resultat = $connexion->requete($requete);
    		// if(is_object($resultat)) {
    		// echo 'ok';
    		// } else {
    		// echo 'pas ok';
    		// }
    if($connexion->compteur($resultat) == 1) {
    $donnees = $connexion->fetch($resultat);
    //...
    $connexion->close();
    } else {
    }
    header('Location: ../');
    ?>
    Ma variable $resultat doit être un objet et là c'est un booléen.

    Ma requête fonctionne et renvoie un résultat. Peut-on m'aider à résoudre l'erreur svp ? Merci.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    si ca te retourne un FALSE c'est que ta requête n'est pas bonne.

    Je dirais que ta syntaxe de "or exit" ne fonctionne pas.
    Essai comme ça plutot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public function requete($requete) {
    	$this->bdd->quote($requete);
    	$retour = $this->bdd->query($requete) or exit(print_r($this->bdd->errorInfo()));
            return $retour:
    	}
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/04/2011, 00h37
  2. Réponses: 4
    Dernier message: 07/10/2009, 11h53
  3. Réponses: 4
    Dernier message: 02/10/2009, 10h12
  4. [PDO] Fatal error: Call to a member function setFetchMode() on a non-object in
    Par tores20 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/07/2009, 23h04
  5. [PHP 5.2] Fatal error: Call to a member function bindValue() on a non-object
    Par TeraD dans le forum Langage
    Réponses: 4
    Dernier message: 23/06/2009, 00h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo