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 fetch_object() on a non-object in [.] on line 4 [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Invité
    Invité(e)
    Par défaut Fatal error: Call to a member function fetch_object() on a non-object in [.] on line 4
    Bonjour, je ne comprend pas d’où vient l'erreur d'autant plus que la requête (toute simple) fonctionne sur phpmyadmin:


    voici mon code


    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
    <?php 
    $req="SELECT * FROM tb_donnees_gpec_grid";
    $res=sql_executer($connexion,$req);
    while($data=$res->fetch_object()){
    	$req_update1="UPDATE  tb_donnees_icrh SET 
    		um='".$data->um."', 
    		dum='".$data->dum."', 
    		sdum='".$data->sdum."', 
    		fsdum='".$data->fsdum."', 
    		famille_pro='".$data->famille_professionnelle."', 
    		fonction='".$data->fonction."', 
    		lieu_travail_ville='".$data->lieu_travailCode."', 
    		college='".$data->college."' WHERE nni='".$data->nni."'
    					date_depart_inn_terme='".datefr2en($data->date_ivd_p)."', 					 							
    				";printf($req_update1."<br>");
    	$res=sql_executer($connexion, $req_update1);
     
    	$req_update2="UPDATE  tb_donnees_eaap SET 
    					date_ivd_s='".datefr2en($data->date_ivd_s)."', 
    					famille_pro1='".$data->famille_pro1."', 
    					metier_souhaite='".$data->metier_souhaite."', 
    					departement1='".$data->departement1."', 
    					villes='".$data->villes."'	 
    					date_dispo='".datefr2en($data->date_dispo)."' WHERE nni='".$data->nni."' 						
    				";printf($req_update2."<br>");
    	$res=sql_executer($connexion, $req_update2);
     
    	$req_update3="UPDATE  tb_donnees_gpec SET 
    					criticite='".$data->criticite."', 
    					cet='".$data->cet."', 
    					ca='".$data->ca."', 
    					rc='".$data->rc."', 
    					date_dep_physique='".datefr2en($data->date_DepPhy)."', 
    					strategie_rh='".$data->strategie_rh."', 
    					profil='".$data->profil."', 
    					reseau='".$data->reseau."', 
    					raccordement='".$data->raccordement."', 
    					comptage='".$data->comptage."', 
    					technique_clientele='".$data->technique_clientele."', 
    					postes='".$data->postes."', 
    					observations='".$data->observations."' WHERE nni='".$data->nni."' 
    				";printf($req_update3."<br>");
    	$res=sql_executer($connexion, $req_update3);
    }
    ?>
    et les méthode de connexion et d’exécution

    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
    function sql_connecter() {
    	global $hostname, $username, $password, $database;
     
    	$erreur = FALSE;
    	$basedonnees = func_num_args() == 0 ? $database : func_get_arg(0);
    	if ($mysqli = mysqli_connect($hostname, $username, $password, $basedonnees)) {
    		$mysqli->set_charset("utf8");
    		return $mysqli;			
    	}
    	else
    	return sql_erreur(1, "Connexion a la source de donnees");
    }
     
     
    function sql_executer($mysqli, $requete) {
    	$mysqli->set_charset("utf8");
    	if ($resultat = $mysqli->query($requete))
    	return $resultat;
    	else
    	return sql_erreur(4, $p_requete);
     
    }
    Dernière modification par Bovino ; 06/08/2013 à 09h05.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Si ça peut aidé, j'ai changer le nom des variables "res" qui étaient identiques ....
    Dernière modification par Invité ; 06/08/2013 à 09h07. Motif: faute d'orthographe

  3. #3
    Membre expérimenté Avatar de Vespiras
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 168
    Par défaut
    Salut,

    Il y a un truc que je ne comprend pas déjà, c'est pourquoi tu n'utilises pas la méthode de connexion PDO :p appelle 2 fois "set_charset('utf8);", une fois dans ta fonction connecter et une fois dans ta fonction executer.

    Ce type d'erreur c'est clairement quand ta variable $res ne comporte aucun résultat. Il n'y a pas eu d'erreurs mais ta variable n'est pas exploitable.

    J'imagine que tu appelles bien ta fonction pour te connecter avant ? Et que tu passes le handle de connexion dans ta fonction sql_executer() ?

    Remplace ligne 3 la variable $connexion par sql_connecter()

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Vespiras Voir le message
    Salut,

    Il y a un truc que je ne comprend pas déjà, c'est pourquoi tu n'utilises pas la méthode de connexion PDO :p appelle 2 fois "set_charset('utf8);", une fois dans ta fonction connecter et une fois dans ta fonction executer.
    C'est effectivement un doublon !


    Citation Envoyé par Vespiras Voir le message
    Ce type d'erreur c'est clairement quand ta variable $res ne comporte aucun résultat. Il n'y a pas eu d'erreurs mais ta variable n'est pas exploitable.
    Le problème venait vraiment du fait de la confusion entre les différents "$res".

    Citation Envoyé par Vespiras Voir le message
    J'imagine que tu appelles bien ta fonction pour te connecter avant ? Et que tu passes le handle de connexion dans ta fonction sql_executer() ?
    Exact, j'ai $connexion=sql_connecter() avant tout cela. C'est cette variable qui passe ensuite dans sql_executer().


    Citation Envoyé par Vespiras Voir le message
    Remplace ligne 3 la variable $connexion par sql_connecter()
    Dernière modification par FirePrawn ; 06/08/2013 à 15h10. Motif: Mise en forme

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

Discussions similaires

  1. [PDO] Fatal error: Call to a member function fetch() on a non-object
    Par blopjerem dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/12/2009, 10h53
  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