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 :

erreur : Fatal error: Call to a member function prepare() on a non-object [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2012
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 29
    Points : 17
    Points
    17
    Par défaut erreur : Fatal error: Call to a member function prepare() on a non-object
    bonjour
    je viens vers vous pour la millième fois pour l'erreur suivante :
    Fatal error: Call to a member function prepare() on a non-object in C:\wamp\www\vrai\panneau\includes_adm\functions_adm_mysql.php on line 28

    ma page functions_adm_mysql.php
    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
    <?php
    define("HOSTNAME", "localhost");
    define("DB_USERNAME", "root");	
    define("DB_PASSWORD", ""); 
    define("DB_NAME", "user");
     
    function db_connect(){
     
    try {
     
    $bdd = new PDO('mysql:host='. HOSTNAME .';dbname='. DB_NAME, DB_USERNAME, DB_PASSWORD);
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
     
    }
    catch (PDOException $e) {
        print "Erreur !: " . $e->getMessage() . "<br/>";
        die();
    }
    return $bdd;
    }
     
     
    function user(){
     
    global $bdd;
     
    $sql = "SELECT id FROM user WHERE login = :login AND password :password ";
    $req = $bdd->prepare($sql);
    $req->bindValue('login', $login, PDO::PARAM_INT);
    $req->bindValue('password', $password, PDO::PARAM_STR);
    $req->execute();
    $result = $req->fetch();
    return $result;
    }
    et ma page connect.php (qui fais appel à functions_adm_mysql.php)
    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
    require_once('includes_adm/all_functions_adm.php');
    $login = isset($_POST['login']) ? $_POST['login'] : '';
    $password = isset($_POST['password']) ? $_POST['password'] : '';
     
    if ($login AND $password){
        $password = sha1($password);
         if (empty($login) AND empty($password))
         {
          header('location:index.php?error=1');
         }
    else {
       db_connect();
       user();
      if($result['password'] == $password){
      session_start();
      $_SESSION['login'] = $login;
      $_SESSION['password'] = $password;
      $_SESSION['logged'] = true;
      setcookie('heggs', $login, time() + 365*48*3600, '/', 'localhost', false, true);
      header('location:admin.php');
      }
     }
    }
    ?>

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Ta fonction db_connect() crée et renvoie une instance PDO. C'est bien, mais cette valeur retournée, tu en fais quoi ?

  3. #3
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2012
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2012
    Messages : 131
    Points : 242
    Points
    242
    Par défaut
    la variable bdd est visible uniquement ds ta methode db_connect
    pour que ta methode user fonctionne il faut appeler db_connect ainsi


  4. #4
    Membre à l'essai
    Inscrit en
    Août 2012
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    merci a vous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PDO] Fatal error: Call to a member function prepare() on a non-object
    Par nu_tango dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 20/12/2012, 09h33
  2. Réponses: 4
    Dernier message: 07/10/2009, 12h53
  3. Réponses: 4
    Dernier message: 02/10/2009, 11h12
  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: 29/07/2009, 00h04
  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, 01h20

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